Показать сообщение отдельно
Старый 27.06.2009, 22:43   #4
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений
(для 43 пользователей)
Ответ: Памагите новичку

Сообщение от 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);
Ну это поиск не в этом смысле слова. Просто получаем возможность узнать если объект в векторе или нет и получаем его итератор после чего сможем с ним манипулирова удалить\переместить.

А вообще купи се книгу,Полный справочник по С++,автор Герберт Шилдт,очень хорошая книжка.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (27.06.2009)