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

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

Войти
Регистрация
Восстановить пароль
 
Vlad_1
2 / 2 / 1
Регистрация: 06.03.2016
Сообщений: 69
Завершенные тесты: 1
#1

Нюансы синтаксиса: чем отличается запись *p += 2 и p += 2 ? - C++

03.09.2016, 23:52. Просмотров 193. Ответов 3
Метки нет (Все метки)

Изучаю библиотеку станд. шаблонов и одно выражение не могу понять. Почему отличается массив при использовании
C++
1
*p += 2
и
C++
1
p += 2
вроде же оба выражения указывают на 3 элемент
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
29
30
31
32
33
34
#include <iostream>
#include <vector>
using namespace std;
void main(void)
{
    setlocale(LC_ALL, "rus");
    vector<int> v(5, 1);
    int i;
    cout << "Размер = " << v.size() << endl;
    cout << "Содержание: ";
    for(i = 0; i < v.size(); i++) cout << v[i] << ' ';
    cout << endl;
 
    vector<int>::iterator p = v.begin();
    p += 2;                 //ВОТ ТУТ
    //вставка в вектор на то место куда указывает итератор p десяти новых элементов
    //каждый из которых равен 9
    v.insert(p, 10, 9);
    cout << "Размер после вставки = " << v.size() << endl;
    cout << "Содержимое после вставки:\n";
    for(i = 0; i < v.size(); i++) cout << v[i] << ' ';
    cout << endl;
    //удаление вставленных элементов
    p = v.begin();
    p += 2;                      //И ТУТ!!!
    v.erase(p, p + 10); //удаление следующих 10 элементов, за элементом, на котор указывает итератор p
    //вывод размера и содержимого вектора после удаления 
    cout << "Размер после удаления: " << v.size() << endl;
    cout << "содержимое: ";
    for(i = 0; i < v.size(); i++) cout << v[i] << ' ';
    cout << endl;
    system("pause");
    return;
}
Добавлено через 12 минут
Всё, разобрался, помощь не надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2016, 23:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нюансы синтаксиса: чем отличается запись *p += 2 и p += 2 ? (C++):

Нюансы синтаксиса: operator-> с чем его едят? - C++
не могли бы вы объяснить что такое -&gt; и что например означает head-&gt;prev=note или it-&gt;next-&gt;prev пожалуйста)только как можно более...

Нюансы синтаксиса: что означает запись (1<<20) ? - C++
Добрый день! Подскажите, пожалуйста. Нашел программу, в ней есть такая строка: #define DICT_SIZE (1 &lt;&lt; 20) Что...

Нюансы синтаксиса: что означает запись for ( ; ; ) ? - C++
Встретила в программе такую строку: for ( ; ; ) { // some code } Кто может объяснить по какому принципу она работает,...

Нюансы синтаксиса C++ - что обозначает запись *= - C++
Здравствуйте, дорогие форумчане. Это, скорее всего, глупый вопрос, но можете объяснить немного использование таких вот идей: ret *= i ...

Нюансы синтаксиса:что значит запись f *= i ? - C++
#include &lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; using namespace std; void main(void) ...

Нюансы синтаксиса: что означает запись amount++ ? - C++
что означает amount++

3
QVO
644 / 455 / 32
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
Завершенные тесты: 3
03.09.2016, 23:53 #2
*p - значение ячейки
p - позиция ячейки в векторе
0
GbaLog-
Любитель чаепитий
3122 / 1462 / 351
Регистрация: 24.08.2014
Сообщений: 5,175
Записей в блоге: 1
Завершенные тесты: 2
03.09.2016, 23:53 #3
Цитата Сообщение от Vlad_1 Посмотреть сообщение
C++
1
*p += 2
Прибавляем 2 к значению, на которое указывает итератор.
Цитата Сообщение от Vlad_1 Посмотреть сообщение
C++
1
p += 2
Сдвигаем итератор на 2 элемента.
0
wendstor
132 / 132 / 35
Регистрация: 15.05.2012
Сообщений: 501
03.09.2016, 23:56 #4
*p += 2 - складываем(существующие значение + 2)
p += 2 - перемещаем итератор на 2-а элемента.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2016, 23:56
Привет! Вот еще темы с ответами:

Нюансы синтаксиса: что означает запись sum += x; ? - C++
что это за сокращение?

Нюансы синтаксиса: что означает данная запись - C++
Всем привет! VS2010, консольный проект C++. По ошибке написал: int b = (5, 4, 11, 56, 18, 0); IntSet is2(n, (5, 4, 11, 56, 18,...

Нюансы синтаксиса: что означает запись _Tp _Cp::*? - C++
Объясните, пожайлуста, несколько моментов. 1) Изучал исходники компилятора и встретил такой код: template&lt;typename _Tp, typename...

Нюансы синтаксиса: что означает запись typedef void(*PF) (); ? - C++
Что означает эта команда typedef void(*PF) (); ?


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

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

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