Сообщение от Mr_F_
буквально позавчера начал изучать язык)
собственно вопрос: как найти нужный мне объект класса? т.е. у меня есть один интегер, и токо в одном из объектов он такой же.
для начала бы хотелось узнать как там делать переборы наподобие блицевского for...each)
ну и бонусом был бы рад узнать, есть ли какие-нибудь более быстрые методы чем полный перебор.
|
Про for
int data[10];
for( int i=0; i < 10; i++ )
{
data[i]=i;
}
Можно хранить объекты в std::map
Например
struct Object
{
....
};
std:map<Object*,int> objects;
запись:
Object* myObject = new Object();
int integer = 5;
objects[integer] = myObject;
получение
Object* obj = objects[integer];
так-же для проверки существует ли объект по нужному индификатору можно с помощью функции objects.find(...),тоесть:
if(objects.find(integer) == objects.end())
{
не существует
}else{
существует
}
можно юзать std::vector для хранения
поиск легко делать:
std::vector<Object*>::iterator i = find(objects.begin(),objects.end(),object);
Ну это поиск не в этом смысле слова. Просто получаем возможность узнать если объект в векторе или нет и получаем его итератор после чего сможем с ним манипулирова удалить\переместить.
А вообще купи се книгу,Полный справочник по С++,автор Герберт Шилдт,очень хорошая книжка.