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

Инициализация элементов вектор - C++

Восстановить пароль Регистрация
 
Zimos
1 / 1 / 0
Регистрация: 12.04.2014
Сообщений: 44
25.11.2014, 13:36     Инициализация элементов вектор #1
В программе создается вектор и первому элементу вектора присваивается объект класса TestClass. Подскажите пожалуйста, в чем ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class TestClass
{   
public:
    int a;
    TestClass(int paramA) // конструктор
    {
        a = paramA;
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{   
    TestClass obj(5);
 
    std::vector<TestClass> myVector(1);
    myVector[0] = obj;
    cout << myVector[0].a;
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
25.11.2014, 13:41     Инициализация элементов вектор #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Добавлено через 1 минуту
C++
1
2
3
4
5
    TestClass obj(5);
 
    std::vector<TestClass>  myVector;
    myVector.push_back(obj);
    cout << myVector[0].a;
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.11.2014, 13:44     Инициализация элементов вектор #3
Zimos,
C++
1
std::vector<TestClass> myVector(1);
это создание вектора с одним элементом, дефолтно инициализированным, учитывая, что конструктора без аргументов у класса нет - компиляция не будет успешной.
Лучше делать так:
C++
1
2
std::vector<TestClass> myVector;
myVector.push_back(obj);
Или же сразу создать вектор из 1 инициализированного элемента
C++
1
std::vector<TestClass> myVector(1, obj);
Zimos
1 / 1 / 0
Регистрация: 12.04.2014
Сообщений: 44
25.11.2014, 13:45  [ТС]     Инициализация элементов вектор #4
Спасибо, работает.
Yandex
Объявления
25.11.2014, 13:45     Инициализация элементов вектор
Ответ Создать тему
Опции темы

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