fucker"ok
06.02.2008, 00:00
Нужно избавиться от одной лишней операции в коде, дабы её 100% можно заменить, но вот с указателями и тп я не дружу
#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++)
{
tmp = *listpos; //НЕ НУЖНОЕ И не желательное действие
i++;
if (tmp.name == "bb") cout << i << " BB найдено \n"; //а вот это нужно как-то сделать через listpos
if (tmp.name[0] == 'c') cout << i << " первая C найдена \n"; // и это тоже
}
return 0;
}
Так-вот от копирования в переменную tmp мне и нужно избавиться, тоесть я хочу добираться до элементов структуры через lispos, дабы в дальнейшем я мог их сравнивать.
#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++)
{
tmp = *listpos; //НЕ НУЖНОЕ И не желательное действие
i++;
if (tmp.name == "bb") cout << i << " BB найдено \n"; //а вот это нужно как-то сделать через listpos
if (tmp.name[0] == 'c') cout << i << " первая C найдена \n"; // и это тоже
}
return 0;
}
Так-вот от копирования в переменную tmp мне и нужно избавиться, тоесть я хочу добираться до элементов структуры через lispos, дабы в дальнейшем я мог их сравнивать.