Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
#1

Как заменить объект в std::list? - C++

12.01.2012, 02:37. Просмотров 748. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток, к делу.
Как сменить объект в списке другим объектом? Вот например с вектором не вопрос.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Cat
{
public:
    void SetAge(int age) { itsAge = age; }
    int GetAge() const { return itsAge; }
private:
    int itsAge;
};
void main()
{
    // массив котов
    std::vector <Cat> vCat(10);
 
    // заполняем
    for(unsigned int i=0; i<vCat.size(); ++i)
        vCat[i].SetAge(rand()%10);
 
    // создаем нового кота
    Cat barsik;
    barsik.SetAge(1);
 
    // меняем местами котов. 
    vCat[4] = barsik;
        
 
    std::cin.get();
    std::cin.get();
}
Если по точнее, хочу создать мини-функцию, которая заменяет коты местами в списке (именно котов, без template )
Типа
C++
1
2
3
4
5
6
7
8
void ReplaceCats(Cat* removeCat, Cat* addCat)
{
    if(listCat.empty())
        return;
 
    std::list <Cat*>::iterator listCatIt = listCat.begin();
    ...
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2012, 02:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как заменить объект в std::list? (C++):

Как получить указатель на объект класса из списка std::list? - C++
Как получить указатель на объект класса из списка list? Правильно ли list&lt;Myclass&gt; ::iterator it =Class.begin(); advance(it,2); ...

Как заменить объект List одного класса объектом другого? - C++
к примеру дано нам 1 объект класса Book , я хочу его вставить в класс Table вместо удаленного объекта данного класса....как мне поступить?...

Как итерировать указатель на std::list? - C++
Здравствуйте! Нужно проитерировать указатель на list хранящий касс точка и получить его элементы. Как это сделать ? bool...

Реализация std::list, сложность list::size() - C++
Часто приходилось пользоваться Listом, но сейчас столкнулся с небольшой неоднозначностью. Согласно документации, метод size() в 11...

Как обратиться к следующему элементу в std::list? - C++
Добрый день. Пусть у меня есть список std::list&lt;int&gt; l; Есть итератор it, указывающий на элемент этого списка. Я хочу посмотреть на...

Как удалить первый элемент из std::list? - C++
Скажите как удалить первый элемент из лист ругается вот как 181 C:\Documents and Settings\Loner\Рабочий стол\5.37\Bin.cpp 'class...

2
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
12.01.2012, 02:45 #2
res, ну так а в чем проблема? получаешь итератор на начало списка, и в цикле проверяешь - если *current == *removeCat, то заменяешь на *addCat.

Не по теме:

p.s. std::replace на это есть

1
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
12.01.2012, 03:02  [ТС] #3
sandye51, Благодарю, сейчас почитаю про replace.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2012, 03:02
Привет! Вот еще темы с ответами:

Как поменять местами два объекта в std::list? - C++
Подскажите, пожалуйста, как с использованием списка обменять два объекта. Т.е. list&lt;myclass&gt; l; myclass obj1,obj2,obj3; ...

Как инициализировать объект типа std::deque<int>? - C++
Доброе время суток! Я видимо совсем не разбираюсь в шаблонах, так как не понимаю почему не работает:std::deque&lt;int&gt; d = {1, 2, 3, 4, 5}; ...

Каким компонентом и как вывести std::list параметризованный объектом пользовательского типа? - C++
Создал класс: class Dannie { public: int Et; int EtMy; int KK; int KKMy; double P; double PMy;

Как минимально просто использовать функция std::find с последовательность типа : list<myClass*> - C++
Добрый день. Как минимально просто использовать функция std::find с последовательность типа : list&lt;myClass*&gt;,если в классе перегружен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru