Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
1

Как вывести элементы двумерного вектора через итератор?

03.09.2019, 20:15. Показов 2586. Ответов 11
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    using namespace std;
 
    
    vector < vector <string>>::iterator iter;
    vector < vector <string>> pole={
        {"дорога","Идет то в гору, то с горы, но остается на месте."},
        {"шахматы","Где встречается такое, что конь через коня перепрыгивает? "},
        {"переселенец","В каком слове 5 е и никаких других гласных?"},
        {"владивосток","В каком городе спрятались мужское имя и сторона света? "}
    };
    
    for (iter = pole.begin(); iter != pole.end(); iter++) {
        cout << *iter;
    }
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2019, 20:15
Ответы с готовыми решениями:

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

Как правильно вывести элементы массива используя итератор?
Ребят, помогите понять, почему вывод такой кривой? Я хочу получить вывод как указано в test9(), но...

Возможно ли через итератор перебрать элементы матрицы?
возможно ли через итератор перебрать элементы матрицы ?

Как вывести элементы вектора, являющиеся членами класса?
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;cstdio&gt; using namespace std; typedef...

11
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
03.09.2019, 20:31 2
C++
1
2
3
4
for (auto iter = pole.begin(); iter != pole.end(); iter++) {
    for(auto it = iter->begin(); it != iter->end(); it++)
        //do smth
}
1
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
03.09.2019, 20:44  [ТС] 3
сработало, а как без auto написать

Добавлено через 1 минуту
понял просто создать еще один итератор

Добавлено через 1 минуту
не не выходит с иетератором it
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
03.09.2019, 21:00 4
Лучший ответ Сообщение было отмечено insandre как решение

Решение

iter - тип vector < vector <string>>::iterator
it - тип vector <string>::iterator
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
03.09.2019, 21:57  [ТС] 5
C++
1
random_shuffle(pole.begin(), pole.end());
запускаю рандом ,но видимо для двумерного вектора надо иначе делать ?
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
03.09.2019, 22:00 6
Лучший ответ Сообщение было отмечено insandre как решение

Решение

Цитата Сообщение от insandre Посмотреть сообщение
надо иначе делать ?
да, для каждой строчки
C++
1
2
for(auto it = pole.begin(); it != pole.end(); it++)
   random_shuffle(it->begin(), it->end());
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
03.09.2019, 22:24  [ТС] 7
всеравно не мешает

Добавлено через 13 секунд
с массивами проще
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
03.09.2019, 22:28 8
Цитата Сообщение от insandre Посмотреть сообщение
всеравно не мешает
Изначальна тред был о другом

Цитата Сообщение от insandre Посмотреть сообщение
с массивами проще
Как скажите
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
03.09.2019, 22:31  [ТС] 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
vector<string>::iterator it;
    vector < vector <string>>::iterator iter;
    vector < vector <string>> pole = {
        {"дорога","Идет то в гору, то с горы, но остается на месте."},
        {"шахматы","Где встречается такое, что конь через коня перепрыгивает? "},
        {"переселенец","В каком слове 5 е и никаких других гласных?"},
        {"владивосток","В каком городе спрятались мужское имя и сторона света? "}
    };
    string slovo = pole[0][0];
    string podskazka = pole[0][1];
    srand(static_cast<unsigned int>(time(0)));
    for (auto it = pole.begin(); it != pole.end(); it++) 
        random_shuffle(it->begin(), it->end());
        cout << slovo << " " << podskazka;
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
03.09.2019, 22:34 10
insandre, вы хотите рандомную загадку что ли?
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
03.09.2019, 23:24  [ТС] 11
нуда)
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
04.09.2019, 15:59 12
insandre,
C++
1
2
3
vector<string>::iterator it = pole[rand() % pole.size()].begin();
//или
vector<string>::iterator it = (pole.begin() + rand() % pole.size()).begin();
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2019, 15:59

Как вывести элементы вектора, тип которых pair<string>?
#include &lt;iostream&gt; #include &lt;utility&gt; #include &lt;vector&gt; #include &lt;iterator&gt; #include &lt;string&gt;...

Вывести элементы списка в таком же виде как и через print, но через return?
Как вывести элементы списка в таком же виде как и через print,но только через return? def...

Итератор вектора
Только начал изучать STL. Проблема с итератором. conversion from 'std::vector&lt;Alfa&gt;::iterator...

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

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

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


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

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

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