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

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

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

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

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

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

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2011, 21:29     Изменить значение элемента вектора, на который указывает итератор
Посмотрите здесь:

Тип на который указывает итератор - 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 вектора понадобился итератор перехода на элемент через индекс. не могли бы вы привести...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
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;
}
Если да, то можно
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
16.04.2011, 21:43  [ТС]     Изменить значение элемента вектора, на который указывает итератор #3
Спасибо, всё оказалось гораздо проще, чем я полагал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2011, 21:45     Изменить значение элемента вектора, на который указывает итератор
Еще ссылки по теме:

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

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

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

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

Переменной R присвоить значение 1, если длина вектора А больше длины вектора В, и значение 0 в противном случае - C++
Условие задачи: переменной R присвоить значение 1, если длина вектора А больше длины вектора В, и значение 0 в противном случае. Исходные...

как создать копию объекта, на который ссылается итератор? - C++
Есть шаблонная фукнция, в которую передается итератор с произвольным доступом (IT). Необходимо внутри функци создать копию элемента...


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

Или воспользуйтесь поиском по форуму:
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
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;
}
Yandex
Объявления
16.04.2011, 21:45     Изменить значение элемента вектора, на который указывает итератор
Ответ Создать тему
Опции темы

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