Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:26 17.05.24 
Компютри и Интернет
   >> Програмисти
*Кратък преглед

Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
Тема obhovdane na vector otzad napredнови  
АвторPesho (Нерегистриран)
Публикувано20.10.04 15:38



Докато се бъзиках със разните STL колекции, се зачудих следното: как да обходя един масив отзад напред?
Отпред назад е ясно: for ( std::vector<int>::iterator It = array.begin() ; It != array.end() ; It++)...
Наобратно обаче не изглежда толкова очевидно. В крайна сметка "for (std::vector<int>::iterator It = array.end() - 1 ; It >= int.begin() ; It--)..." свърши работа, но изглежда отвратително. Предполагам че има по културен начин, така че ще се радвам някой да сподели опита си.



Тема Re: obhovdane na vector otzad napredнови [re: Pesho]  
АвторPaдo (Нерегистриран)
Публикувано20.10.04 16:27



reverse_iterator, rbegin, rend.



Тема къф е смисъла от тоя итератор бря?нови [re: Pesho]  
Автор zaphod (void *lpNothing)
Публикувано20.10.04 18:40



аз не ползвам стл, и като гледам кода който си дал се чувствам щастлив че не го ползвам
но за какъв чеп са сложили тоя итератор, а не просот инт???




NE SUTOR ULTRA CREPIDAM


Тема Re: къф е смисъла от тоя итератор бря? [re: zaphod]  
Автор Potencialen emigrant (computer)
Публикувано20.10.04 21:51



Ami zashtoto obhojdane na svyrzan spisyk s int e malko, hm, bavno.
A pyk na map ili set e malko, hm, bezsmileno.

Bydi shtastliv!

Otkriyte greshkite:



Тема а няма ли истински масиви?нови [re: Potencialen emigrant]  
Авторzaphod (Нерегистриран)
Публикувано20.10.04 22:40



като CArray na mfc например?



Тема Re: obhovdane na vector otzad napredнови [re: Pesho]  
Авторchukumba (Нерегистриран)
Публикувано20.10.04 22:45



Колегата дето е написал за reverse_iterator - е те това е!

По принцип, в модерния C++, неща които се правят във for цикъл, задължително се заменят с std::for_each(iter_begin,iter_end, functor).

а ние всички искаме да сме модерни нал-тъй!

а пък дето се бъзикаш, по добре фани па се бъзикай с неко друг език. C++ и STL са си болка в гъза.



Тема Re: къф е смисъла от тоя итератор бря?нови [re: zaphod]  
АвторPaдo (Нерегистриран)
Публикувано21.10.04 08:54



Спокойно можеш да обхождаш vector с int:

std::vector<int> v(10, 0);
for (int i = 0; i < v.size(); i++) { v += i; }

Итераторите се използват за абстракция на редица:

std::find(l.begin(), l.end(), 0)
std::find(v.begin(), v.end(), 0)

т.е. по един и същи начин можеш да намериш елемент, независимо дали търсиш в list или vector. Всъщност основната идея е да се абстрахираш от точния вид на торбата, която ползваш. С помощта на fill, find, for_each, generate и т.н. в огромна част от кода изобщо може да няма нужда от явни цикли.



Тема Re: къф е смисъла от тоя итератор бря?нови [re: Paдo]  
АвторPaдo (Нерегистриран)
Публикувано21.10.04 08:56



Мааму стара тоя мета език...

v[ i ] имах предвид в примера.



Тема Re: obhovdane na vector otzad napredнови [re: chukumba]  
АвторPesho (Нерегистриран)
Публикувано21.10.04 09:14



То че е хубаво "for_each" да се ползва е ясно, ама трудно ще ме накара човек да пиша отделна функция за това, при положение че тялото на цикъла е един ред...



Тема Re: obhovdane na vector otzad napredнови [re: Pesho]  
АвторPaдo (Нерегистриран)
Публикувано21.10.04 10:02



Всъщност for_each не е много хубаво да се ползва :) Когато го срещнеш в кода от пръв поглед може да кажеш само, че правиш 'нещо' върху редицата. 'Нещото' може да бъде от търсене през инициализиране до генериране на нова редица. find, fil, generate, transform често са по-добри алтернативи.




Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.