Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
113 / 113 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
1

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

22.06.2012, 17:08. Показов 2516. Ответов 9
Метки нет (Все метки)

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

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

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

DataGridView - возможно ли перебрать значения через for each?
DataGridView - возможно ли перебрать значения через for each? Среда VC++ 2013. Нашел кучу примеров...

Как вывести элементы двумерного вектора через итератор?
int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); using namespace std; ...

Заменить нечетные элементы матрицы на 0 и вывести элементы в строчку через пробел
Дан двумерный массив ввести элементы с клавиатуры заменить нечетные элементы на 0 и вывести ...

Через процедуру поменять первые элементы столбцов матрицы с минимальными элементами строк матрицы
var b:matrix; i, j, jmin: integer; k:char; Procedure App (var a:matrix); begin clrscr;...

9
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
22.06.2012, 17:21 2
конечно,только нужно сказать,что ты используешь.Массив?
1
113 / 113 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
22.06.2012, 17:35  [ТС] 3
вектор, вот задание и мои попытки, укажите на ошибки
Прочитайте некоторый текст, сохраняя каждое введенное слово как отдельный элемент вектора. Преобразуйте символы каждого слова в прописные. Отобразите преобразованный текст выводя по 8 слов в строке.
уже решено
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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
int main()
{
    vector<string> cet;
    string n;
    while (cin >>n) {
        cet.push_back(n);
    }   
    int count(7);
    for(int i=0;i!=cet.size();i++) {
        for(int y=0;y!=cet[i].size();y++) {
            if (islower(cet[i][y])) {
                cet[i][y] = toupper(cet[i][y]);
            }
        }
        cout << cet[i] << " ";
        if (i/count) { 
            cout << endl;
            count+=8;
        }
    }
    return 0;
}
вот задание с итератором
Переделайте код из упражнения (выше) так, чтобы для доступа к элементам вектора вместо индексирования использовался итератор.
одна из попыток

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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
int main()
{
    vector<string> cet;
    string n;
    while (cin >>n) {
        cet.push_back(n);
    }   
    int count(7),m(0);
    for(vector<string>::iterator i=cet.begin();i!=cet.end();++i) {
        for(vector<string> y=i.begin();y!=i.end();++y) {
            if (islower(*y)) {
                *y = toupper(*y);
            }
        }
        cout << *i << " ";
        if (m/count) { 
            cout << endl;
            count+=8;
        }
        ++m;
    }
    return 0;
}
0
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
22.06.2012, 17:42 4
что именно не так у вас?
0
113 / 113 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
22.06.2012, 17:46  [ТС] 5
ошибку при компиляции выдает
C++
1
2
3
4
5
6
for(vector<string>::iterator i=cet.begin();i!=cet.end();++i) {
        for(vector<string> y=i.begin();y!=i.end();++y) {
            if (islower(*y)) {
                *y = toupper(*y);
            }
        }
0
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
22.06.2012, 18:21 6
C++
1
++i
поменяйте преинткремент на постинкремент
0
Делаю внезапно и красиво
Эксперт С++
1311 / 1226 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
22.06.2012, 18:26 7
Цитата Сообщение от DaskOFF Посмотреть сообщение
C++
1
for(vector<string> y=i.begin();y!=i.end();++y) {
C++
1
for(string::iterator y=i.begin();y!=i.end();++y) {
Хотя я не помню, есть ли у строк итераторы.
1
113 / 113 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
22.06.2012, 18:29  [ТС] 8
это тут не причем,
надо перебрать символы строки, слова которой перебираются через инкримент
т.е. я могу перебрать слова которые находятся в векторе через инкримент
*i - это одно из слов "предложения"
надо перебрать все его символы через инкримент, но у *i нету метода .begin() и .end()
0
Делаю внезапно и красиво
Эксперт С++
1311 / 1226 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
22.06.2012, 18:30 9
Цитата Сообщение от DaskOFF Посмотреть сообщение
но у *i нету метода .begin() и .end()
потому и выдаёт ошибку компиляции. Логично.
0
113 / 113 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
22.06.2012, 18:34  [ТС] 10
получилось, всем спасибо
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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
int main()
{
    vector<string> cet;
    string n,stroka;
    while (cin >>n) {
        cet.push_back(n);
    }   
    int count(7),m(0);
    for(vector<string>::iterator i=cet.begin();i!=cet.end();i++) { 
        stroka = *i;
        for (string::iterator y=stroka.begin();y!=stroka.end();++y) {
            if(islower(*y)) {
                *y=toupper(*y);
            }
        }
        cout << stroka << " ";
        ++m;
        if (m/count) { 
            cout << endl;
            count+=8;
        }
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2012, 18:34

Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка
не могу понять что должно быть результатом. может подскажете примеры? пожалуйста. Задание:...

Особый итератор словаря. Итератор возвращающий нужные комбинации
Немогу разобраться, как написать итератор. У меня есть словарь, ключи это координаты, а значения...

Перебрать элементы страницы
Всем привет. Нужно сделать меню на сайте выпадающее по клику. Тыкнули на элемент - из него выпало...

Перебрать элементы массива
Добрый день! Создала массив gameobject. mainIm = massiv ; GameObject go = Instantiate...

Не заполняется лист через итератор
Здравствуйте, требуется переписать первый лист во второй в перевернутом порядке через итератор....

Перебрать элементы формы документа
Есть такая необходимость при открытии формы документа (Любого) получить все её элементы. (Для того...


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

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

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