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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.62
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
#1

Изменить значение элемента вектора, на который указывает итератор - C++

16.04.2011, 21:29. Просмотров 3347. Ответов 3
Метки нет (Все метки)

Собственно вопрос, возможно ли изменить значение элемента вектора, на который указывает итератор, на значение последнего элемента вектора, без успользования удаления+вставки и если да, то как?
Среди стандартных функций ничего подходящего не нашел _http://azbukavb.narod.ru/cdoc/vector.html

Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2011, 21:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменить значение элемента вектора, на который указывает итератор (C++):

Тип на который указывает итератор - C++
Как в функции узнать тип на который указывает итератор не используя auto и boost::iterator_value?#include <iostream> #include <vector> ...

Узнать тип, на который указывает итератор - C++
Всем привет! Вот например у меня есть такой код: vector<double> objInt2; objInt2.push_back(1); objInt2.push_back(2); ...

Как изменить тип объекта, на который указывает указатель? - C++
Есть абстрактный базовый класс и два производных: class Base { protected: int A; }; class Child1 : public Base {

Узнать номер элемента массива на который указывает указатель - C++
Может вопрос глупый но тока что об этом задумался! Можно ли узнать номер элемента массива на который указывает указатель не используя...

Удалить из списка элемент, стоящий после элемента на который указывает пользователь - C++
Нужно удалить из списка элемент, стоящий после элемента на который указывает пользователь, подскажите пожалуйста, как это сделать ...

Итератор для вектора - C++
Привет, столкнулся с тем что при использовании stl вектора понадобился итератор перехода на элемент через индекс. не могли бы вы привести...

3
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,982
16.04.2011, 21:38 #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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main (void)
{
    const int SIZE = 10;
    int MAS[SIZE] = {1, 5, 3, 1, 1, 7, 5, 9, 3, 8};
    std::vector <int> vec (MAS, MAS + SIZE);
 
    std::cout << "Before: ";
    std::copy (vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
 
    std::vector <int> :: iterator it1 = vec.begin() + 2; // на третий элемент, к примеру.
    std::vector <int> :: iterator it2 = vec.end() - 1; // на последний.
    *it1 = *it2;
 
    std::cout << "After: ";
    std::copy (vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
 
    return 0;
}
Если да, то можно
1
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
16.04.2011, 21:43  [ТС] #3
Спасибо, всё оказалось гораздо проще, чем я полагал
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,982
16.04.2011, 21:45 #4
Можно вот кстати еще проще:

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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main (void)
{
    const int SIZE = 10;
    int MAS[SIZE] = {1, 5, 3, 1, 1, 7, 5, 9, 3, 8};
    std::vector <int> vec (MAS, MAS + SIZE);
 
    std::cout << "Before: ";
    std::copy (vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
 
    std::vector <int> :: iterator it1 = vec.begin() + 2; // на третий элемент.
    *it1 = vec.back();
 
    std::cout << "After: ";
    std::copy (vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
 
    return 0;
}
0
16.04.2011, 21:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2011, 21:45
Привет! Вот еще темы с ответами:

Можно ли итератор вектора декрементировать? - C++
Добрый день ! Можно ли итератор вектора декрементировать ?

удаление элументов вектора через итератор - C++
почему так: //работает vector&lt;int&gt;::iterator it=garage.begin(); while(it!=garage.end()) { it=garage.erase(it); } а так...

Почему не запоминается правильно итератор вектора? - C++
Почему, если сделать что-то такое: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main () { vector...

Можно ли при использовании вектора не использовать итератор? - C++
можно ли при использование вектора не использовать итератор?


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

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

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