с++ vector, iterator, new and delete

23 отговора 0 прегледа
в отговор на trp #21

Re: с++ vector, iterator, new and delete

хехе, наистина много мерси за отговорите. Тази тема, както и очаквах, не премина без обичайните простотии - рано или късно темата се изменя (в случая към темата за правописа). Много ме кефи като прочета някаква онлайн статия примерно във стандарт и после погледна отдолу читателските мнения - има 3-4 по темата, 5-тото вече е "кур за цска". хахаха
Тук нещо подобно се получава :)
Пък и всеки се изказва се едно е ебати разбирача...може би заради това се получават толкова изродски спорове - всеки иска да е най-големия разбирач (и разбира се по всички теми).

иначе, наистина би било по-яко със smart pointers, но ми се налагаше да ползвам обикновените. Това, което търсех звучи така:

list<Cls*>::iterator it = lst.begin();
while (it != lst.end())
{
delete *it;
it = lst.erase(it);
}

същото може да се предложи и за вектор, нали така?
Забележки по този код?

Отговор
в отговор на trp #22

Re: с++ vector, iterator, new and delete

>> същото може да се предложи и за вектор, нали така?

Не бих ти препоръчал да триеш вектор елемент по елемент както правиш със списъка - нали се сещаш, че за вектор тая операция би била квадратична, а не линейна - местят се всички елементи на мястото на изтрития. Поне не от предницата.

Освен това за извикването на delete ти е достатъчен const_iterator. Не ползвай неконстантни неща ако може да са константни.

А за изказването като 'ебати разбирача' - едва ли можеш да прецениш кой колко разбира (както защото все още ти не си разбирач, така и защото не познаваш повечето от хората). Не пропускай вероятността някои наистина да разбират. Не се подвеждай от езиковите спорове - те са форумна култура и не винаги имат пряка зависимост със знанията на хората.

System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Отговор
в отговор на Colombino #23

Re: с++ vector, iterator, new and delete

good point!

иначе не изключвам тази възможност. все пак за това пиша във форума.

Отговор
в отговор на Colombino #24

Re: с++ vector, iterator, new and delete

В отговор на:

Не бих ти препоръчал да триеш вектор елемент по елемент както правиш със списъка - нали се сещаш, че за вектор тая операция би била квадратична, а не линейна - местят се всички елементи на мястото на изтрития. Поне не от предницата.




ами да! а аз се чудех защо е толкова бавно ... Като са няколко милиона елементите на вектора се забелязва :(

Отговор