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

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

Войти
Регистрация
Восстановить пароль
 
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 523
Записей в блоге: 1
#1

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

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

возможно ли через итератор перебрать элементы матрицы ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2012, 17:08     Возможно ли через итератор перебрать элементы матрицы?
Посмотрите здесь:

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

Считать с файла числа через итератор потока - C++
Не хочет считывать с файла целые числа, что я делаю не так? #include <iostream> #include <fstream> #include <iterator> #include...

List и Vector, создать массив списков и перебрать все элементы - C++
Как с помощью List и Vector создать массив списков, и пробежаться в нем по всем элементам?

Как в цикле перебрать все элементы отдельного столбца или строки? - C++
Подскажите как такой цикл пробегается по элементам? for (i=1;i<9;i++) for(j=1;j<9;j++) по скрину подскажите как...

Если последняя строка данной матрицы содержит нулевые элементы - домножить все элементы матрицы на 10 - C++
Дана действительная матрица С(n*m).Если последняя строка данной матрицы содержит нулевые элементы то домножить все элементы матрицы на 10

Работа с матрицами (Получить элементы квадратной матрицы, где элементы матрицы зависят от параметров) - C++
ЗАДАНИЕ: Получить элементы квадратной матрицы , где элементы матрицы , зависят от параметров и . Из матрицы А по заданному...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
22.06.2012, 17:21     Возможно ли через итератор перебрать элементы матрицы? #2
конечно,только нужно сказать,что ты используешь.Массив?
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 523
Записей в блоге: 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;
}
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
22.06.2012, 17:42     Возможно ли через итератор перебрать элементы матрицы? #4
что именно не так у вас?
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 523
Записей в блоге: 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);
            }
        }
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
22.06.2012, 18:21     Возможно ли через итератор перебрать элементы матрицы? #6
C++
1
++i
поменяйте преинткремент на постинкремент
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 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) {
Хотя я не помню, есть ли у строк итераторы.
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 523
Записей в блоге: 1
22.06.2012, 18:29  [ТС]     Возможно ли через итератор перебрать элементы матрицы? #8
это тут не причем,
надо перебрать символы строки, слова которой перебираются через инкримент
т.е. я могу перебрать слова которые находятся в векторе через инкримент
*i - это одно из слов "предложения"
надо перебрать все его символы через инкримент, но у *i нету метода .begin() и .end()
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.06.2012, 18:30     Возможно ли через итератор перебрать элементы матрицы? #9
Цитата Сообщение от DaskOFF Посмотреть сообщение
но у *i нету метода .begin() и .end()
потому и выдаёт ошибку компиляции. Логично.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2012, 18:34     Возможно ли через итератор перебрать элементы матрицы?
Еще ссылки по теме:

Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по возрастанию массив - C++
Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1&lt;n&lt;=100, 1&lt;m&lt;=50) и Упорядочить все элементы матрицы...

Возможно сделать PrintScreen через C++? - C++
Возможно сделать PrintScreen через C++? т.е. как бы обычное нажатие кнопки на PrintScreen, только она происходит через функцию в С++....

Возможно ли через C++ создать что то на подобии этого - C++
Допустим нам нужно создать тест по всей программе 4 класса для учеников. После решения теста программа выдает результат, показывает ошибки,...

Асинхронный вызов функции, возможно через другой поток - C++
Привет! Есть какой - то класс, содержащий какое-то поле (переменную) и какую - то функцию, изменяющую эту переменную. ну например такой ...

Элементы матрицы умножить на скаляр C=5,2. Элементы третьего столбца заменить единицами - C++
Не могу понять как вычислить матрицу, подскажите пожалуйста=) Данная матрица А (4,5), элементы умножить на скаляр C = 5,2. Элементы...

Все элементы последней строки матрицы увеличить на соответствующие элементы предпоследней - C++
Дана квадратная матрица. необходимо вести порядок и элементы квадратной матрицы. в с++ нужно все элементы последней строки увеличить на...


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

Или воспользуйтесь поиском по форуму:
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 523
Записей в блоге: 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;
}
Yandex
Объявления
22.06.2012, 18:34     Возможно ли через итератор перебрать элементы матрицы?
Ответ Создать тему
Опции темы

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