ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

std::list поиск
  #1  
Старый 06.02.2008, 00:00
fucker"ok
Познавший АНТИЧАТ
Регистрация: 21.11.2004
Сообщений: 1,137
Провел на форуме:
2487541

Репутация: 761


По умолчанию std::list поиск

Нужно избавиться от одной лишней операции в коде, дабы её 100% можно заменить, но вот с указателями и тп я не дружу
PHP код:
#include <iostream>
#include <list>
#include <string>
using namespace std;

struct Someshit
{
        
string name;
        
int id;
};
int main(int argcchar *argv[])
{
        
Someshit sometmp;
        list <
Someshitsomelist;
        
some.name="aa";
        
somelist.push_back(some);
        
some.name="bb";
        
somelist.push_back(some);
        
some.name="cc";
        
somelist.push_back(some);
        
//и подобного много раз
        
list <Someshit>::iterator listpos;
        
int i 0;
        for (
listpos somelist.begin(); listpos != somelist.end(); listpos++)
        {
                
tmp = *listpos//НЕ НУЖНОЕ И не желательное действие
                
i++;
                if (
tmp.name == "bb"cout << << " BB найдено \n"//а вот это нужно как-то сделать через listpos
                
if (tmp.name[0] == 'c'cout << << " первая C найдена \n"// и это тоже
        
}
        return 
0;


Так-вот от копирования в переменную tmp мне и нужно избавиться, тоесть я хочу добираться до элементов структуры через lispos, дабы в дальнейшем я мог их сравнивать.

Последний раз редактировалось fucker"ok; 06.02.2008 в 00:03..
 
Ответить с цитированием

  #2  
Старый 06.02.2008, 00:34
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

Код:
 #include <iostream> 
#include <list> 
#include <string> 
using namespace std; 

struct Someshit 
{ 
        string name; 
        int id; 
}; 
int main(int argc, char *argv[]) 
{ 
        Someshit some; // здесь изменено - убрана переменная tmp
        list <Someshit> somelist; 
        some.name="aa"; 
        somelist.push_back(some); 
        some.name="bb"; 
        somelist.push_back(some); 
        some.name="cc"; 
        somelist.push_back(some); 
        //и подобного много раз 
        list <Someshit>::iterator listpos; 
        int i = 0; 
        for (listpos = somelist.begin(); listpos != somelist.end(); listpos++) 
        {                 
                i++; 
                if (listpos->name == "bb") cout << i << " BB найдено \n"; // здесь изменено
                if (listpos->name[0] == 'c') cout << i << " первая C найдена \n"; // здесь изменено
        } 
        return 0; 

}
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск Seo софта Хозяин SЕО - тонкости, методы раскрутки 132 28.12.2009 11:23
Поиск музыки Jonathan Allen Болталка 0 16.12.2005 17:01
Поиск руководства Николь Болталка 0 03.02.2004 14:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ