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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
#1

Как правильно записать число в вектор, который состоит из векторов? - C++

12.08.2013, 10:02. Просмотров 1527. Ответов 22
Метки нет (Все метки)

Что-то никак не соображу.
Каждый элемент - это вектор...

C++
1
2
3
std::vector< std::vector<int> >     v;
...
v[0] = 1; // error C2679: бинарный "=": не найден оператор, принимающий правый операнд типа "int" (или приемлемое преобразование отсутствует)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2013, 10:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно записать число в вектор, который состоит из векторов? (C++):

задан вектор С, который состоит из 12 действительных чисел. Сформировать вектор D, нечетные элементы которого есть целая часть нечетных - C++
задан вектор С, который состоит из 12 действительных чисел. Сформировать вектор D, нечетные элементы которого есть целая часть нечетных...

Как правильно объявить константы для всего проекта, который состоит из нескольких файлов - C++
какой-нибудь Variables.h в котором будет что-то типа: #define A 50 #define B 40 или const int A 50

Как правильно записать большое число - C++
Есть число размер 10^100 как правильно записывать такие числа? Спасибо!

Сформировать вектор, в который записать номера строк, в которых все элементы массива одинаковы. - C++
Дан двумерный массив A размера m*n. Сформировать вектор В, в который записать номера строк , в которых все элементы одинаковы. Если можно...

Как обьявить вектор векторов? - C++
Как обьявить вектор векторов? Так ругается vector&lt;vector&lt;int&gt;&gt; matrix = { {1, 2}, {3, 4} }; Так тоже const int ROWS =...

Создать шаблонную матрицу как вектор векторов - C++
Здравствуйте! Пишу программу по матрицам. При чем матрица создается здесь как вектор векторов. Не могу никак справиться с ошибкой, не...

22
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
12.08.2013, 10:06 #2
C++
1
2
v.push_back(std::vector<int>(1));
v[0][0] = 1;
http://www.cplusplus.com/reference/vector/vector/vector/
1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
12.08.2013, 10:18  [ТС] #3
yleart,
а почему печатает 0?

C++
1
2
3
4
5
    std::vector< std::vector<int> >     v;
 
    v.push_back(std::vector<int>(1));
 
    std::cout << v[0][0] << std::endl;
0
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
12.08.2013, 10:19 #4
Гляньте ссылку, 1 в скобках - это количество элементов выделенных для вектора в векторе. Еще нужно инициализировать этот вектор.
1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
12.08.2013, 10:24  [ТС] #5
все понял, спасибо
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
12.08.2013, 10:28 #6
Еще так можно:
C++
1
2
3
4
5
6
7
8
9
10
11
std::vector<std::vector<int>> v;
v.push_back(std::vector<int>(1,1));
std::cout << v[0][0] << std::endl;
 
v.push_back({2,3,4,5,6});
v.push_back({7,8,9,10});
for (auto& i : v)
{
    for (int j : i) std::cout << j << " ";
    std::cout << std::endl;
}
2
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
12.08.2013, 12:15 #7
Цитата Сообщение от DiffEreD Посмотреть сообщение
for (auto& i : v)
как это работает?
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.08.2013, 12:33 #8
C++
1
2
3
4
5
for (auto& i : v)
{
 for (int j : i) std::cout << j << " ";
 std::cout << std::endl;
}
Цитата Сообщение от Хулиган Посмотреть сообщение
как это работает?
примерно так

C++
1
2
3
4
5
6
7
for (std::vector<std::vector<int>>::iterator i = std::begin(v); i != std::end(v); ++i)
{
    for (std::vector<int>::iterator j = std::begin(*i); j != std::end(*i); ++j) 
        std::cout << *j << " ";
 
    std::cout << std::endl;
}
0
Kuzia domovenok
2078 / 1907 / 176
Регистрация: 25.03.2012
Сообщений: 6,572
Записей в блоге: 1
12.08.2013, 13:02 #9
Цитата Сообщение от DiffEreD Посмотреть сообщение
for (auto& i : v)
это на каком языке?

Добавлено через 2 минуты
Цитата Сообщение от Jupiter Посмотреть сообщение
for (std::vector<std::vector<int>>::iterator i = std::begin(v); i != std::end(v); ++i)
{
* * for (std::vector<int>::iterator j = std::begin(*i); j != std::end(*i); ++j)
* * * * std::cout << *j << " ";
std::cout << std::endl;
}
а почему тогда i было объявлено как auto& i
но j объявлено как int j
а у тебя циклы одинаковые?
после слова auto разве не обязан идти тип?
например
C++
1
auto std::vector<std::vector<int>>::iterator i;
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.08.2013, 13:12 #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это на каком языке?
на с++11
_______________________________________________________________________
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а почему тогда i было объявлено как auto& i
но j объявлено как int j
а у тебя циклы одинаковые?
написано же
Цитата Сообщение от Jupiter Посмотреть сообщение
примерно так
примерно как ссылки превращаются в указатели и наоборот
_______________________________________________________________________
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
после слова auto разве не обязан идти тип?
например
C++
1
auto std::vector<std::vector<int>>::iterator i;
и что это будет означать? чем это будет отличатся от
C++
1
std::vector<std::vector<int>>::iterator i;
?
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
12.08.2013, 13:26 #11
Для Kuzia domovenok: C++ 11 FAQ от Бьярна Страуструпа
0
Kuzia domovenok
2078 / 1907 / 176
Регистрация: 25.03.2012
Сообщений: 6,572
Записей в блоге: 1
12.08.2013, 13:30 #12
Цитата Сообщение от Jupiter Посмотреть сообщение
std::vector<std::vector<int>>::iterator i;
тем, что в языке Си ключевое слово auto означает именно спецификаторы классов памяти.
C++
1
2
3
4
//Можно написать 
for (auto std::vector<std::vector<int>>::iterator i = std::begin(v); i != std::end(v); ++i)
//А можно 
for (static std::vector<std::vector<int>>::iterator i = std::begin(v); i != std::end(v); ++i)
и то и другое имеет право быть
А отменяя объявление типа переменной, мы рискуем превратить годный типизированный язык в абстрактное яваподобное убожество с элементами функциональщины!
0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
12.08.2013, 13:32 #13
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
что в языке Си ключевое слово auto означает именно спецификаторы классов памяти.
А в языке C++ - автоматический вывод типа.
Кажется, это уже недавно обсуждали же
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.08.2013, 13:33 #14
Kuzia domovenok, не надо уклонятся от вопросов. Еще раз, чем это
C++
1
auto std::vector<std::vector<int>>::iterator i;
будет отличатся от
C++
1
std::vector<std::vector<int>>::iterator i;
?

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Кажется, это уже недавно обсуждали же
действие инъекции закончилось

0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
12.08.2013, 13:35 #15
Цитата Сообщение от Jupiter Посмотреть сообщение
будет отличатся от
Наверное, ошибкой компиляции..?
0
12.08.2013, 13:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2013, 13:35
Привет! Вот еще темы с ответами:

Как через push_back заполнить вектор векторов? - C++
Как через push_back заполнить вектор векторов? просто вектор например так: for(int i=0;i&lt;100;i++) m.push_back(rand()/100);...

как создать вектор из векторов и как потом к нему обращаться? - C++
Банальный вопрос - как создать вектор из векторов и как потом к нему обращаться? вот vector&lt;int&gt; a; - это, понятное дело, вектор а, а вот...

Как объявить вектор векторов, если размеры изначально неизвестны? - C++
Как правильно объявить вектор векторов, если размеры изначально неизвестны? и как заносить значения ?

Создать абстрактный тип данных (структура) - вектор, который имеет указатель на short и число элементов - C++
Создать абстрактный тип данных (структура) - вектор, который имеет указатель на short и число элементов. Определить функции: инициализации,...


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

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

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