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

Не удаётся создать безымянный объект типа vector моего типа - C++

Восстановить пароль Регистрация
 
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
01.08.2011, 18:59     Не удаётся создать безымянный объект типа vector моего типа #1
Собсно
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
#include <vector>
using namespace std;
 
 
//Вот мой австорский тип 
struct kletka {
 int i, j;
 kletka(int x, int y):i(x), j(y) {};
};
 
 
int main() {
 
 //Тут всё нормально
 vector <int> (7);
 
 //Вот переменная моего авторского типа
 kletka kl (4, 5);
 
 //Вот создаём безымянный вектор элементов типа "kletka" и кладём туда элемент kl
 //Ругань!
 //а это ведь идентично vector <int> (7);!
 vector <kletka> (kl);
 
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
01.08.2011, 19:18     Не удаётся создать безымянный объект типа vector моего типа #2
Цитата Сообщение от kravam Посмотреть сообщение
//Вот создаём безымянный вектор элементов типа "kletka" и кладём туда элемент kl
Нет, конструктор такого вида резервирует размер вектора.
C++
1
vector <int> (7);//создаем вектор, котрый содержит 7 элементов, типа int
а тут, сам понимаешь, не понять что:
C++
1
vector <kletka> (kl);
Кстати, зачем понадобилось создавать безымянный вектор?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
01.08.2011, 19:19     Не удаётся создать безымянный объект типа vector моего типа #3
delete
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
01.08.2011, 19:21     Не удаётся создать безымянный объект типа vector моего типа #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
C++
1
vector <kletka> (kl);
а тут, сам понимаешь, не понять что:
поправочка:
А тут ты создаешь не безымянный вектор, а вектор с именем kl (скобки игнорируются), поэтому и ругань)
kravam, ты ошибки компилятора читаешь?
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
01.08.2011, 19:41  [ТС]     Не удаётся создать безымянный объект типа vector моего типа #5
Там по-английски, да я даже если бы и перевёл всё равно ничё не понял бы.
Короче я привык, что pair <int, int> (1, 2) создаётся объекут типа pair с first==1 second==2
Думал с вектором проканает, не проканало.

А безымянный вектор нужен мне потому, что у меня вектор векторов
C++
1
vector < vector <kletka> > osn__vec;
Я заполняю его в цикле, не присваивать же каждому элементу имя! Но придётся, буду так:
C++
1
2
3
   vector <kletka> temp;
   temp.push_back (kletka(4, 5));
   osn__vec.push_back (temp);
LosAngeles
Заблокирован
01.08.2011, 19:53     Не удаётся создать безымянный объект типа vector моего типа #6
это называется вектор переданный в качестве аргумента шаблона, а не безымяный вектор)

Добавлено через 9 минут
а "безымянный" вектор наверно так создаётся vector<лдуелф>::vector(kl);
Yandex
Объявления
01.08.2011, 19:53     Не удаётся создать безымянный объект типа vector моего типа
Ответ Создать тему
Опции темы

Текущее время: 13:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru