Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 21.03.2015, 20:49   #1
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию <vector>, инициализация значений.

Доброго времени суток, форумчане. Имеется проблема:
Код:
std::vector <char> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Пытаюсь инициализировать вектор в заголовочном файле класса, что бы потом с ним работать. Компилятор говорит: инициализация списка в списке инициализаторов члена или нестатического члена данных не реализована. Как это можно исправить, заранее благодарю за любой ответ.
FULEREN вне форума Ответить с цитированием
Старый 21.03.2015, 21:04   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,252
По умолчанию

Вы объявили контейнер для символов, а хотите хранить строки

Код:
    std::vector <std::string> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Код:
    std::vector <char> v2 = { 'a', 'b', 'c' };
8Observer8 вне форума Ответить с цитированием
Старый 21.03.2015, 21:14   #3
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию

Код:
std::vector <std::string> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Исправил, такая же ошибка.
FULEREN вне форума Ответить с цитированием
Старый 21.03.2015, 22:08   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,252
По умолчанию

Ваш компилятор не поддерживает C++11. Придётся через push_back:

Код:
    std::vector <std::string> v1;
    v1.push_back( "armin" );
    v1.push_back( "eleg" );
    v1.push_back( "autu" );
Или заранее в конструкторе зарезервировать:

Код:
    std::vector <std::string> v1(3);
    v1[0] = "armin";
    v1[1] = "eleg";
    v1[2] = "autu";
Либо позже выделить место под элементы:

Код:
    std::vector <std::string> v1;

    v1.resize( 3 );
    v1[0] = "armin";
    v1[1] = "eleg";
    v1[2] = "autu";
Если бы поддерживал, то можно вот так ещё инициализировать:

Код:
std::vector <std::string> v1( { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" } );
И так:

Код:
    std::vector <std::string> v1;
    v1.assign( { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" } );

Последний раз редактировалось 8Observer8; 21.03.2015 в 22:13.
8Observer8 вне форума Ответить с цитированием
Старый 22.03.2015, 14:29   #5
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от FULEREN Посмотреть сообщение
Пытаюсь инициализировать вектор в заголовочном файле класса, что бы потом с ним работать.
В заголовочном файле должно быть только простое объявление. Определение - в cpp.
Somebody вне форума Ответить с цитированием
Старый 22.03.2015, 15:40   #6
halcyon
crafter
Форумчанин
 
Аватар для halcyon
 
Регистрация: 03.09.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от FULEREN Посмотреть сообщение
Доброго времени суток, форумчане. Имеется проблема:
Код:
std::vector <char> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Пытаюсь инициализировать вектор в заголовочном файле класса, что бы потом с ним работать. Компилятор говорит: инициализация списка в списке инициализаторов члена или нестатического члена данных не реализована. Как это можно исправить, заранее благодарю за любой ответ.
Где вы пытаетесь инициализировать объект v1?
halcyon вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инициализация ссылки на vector не через аргумент конструктора. Leiph Общие вопросы C/C++ 9 10.02.2013 15:28
присвоение значений vector в функции SAMOUCHKA Общие вопросы C/C++ 5 27.10.2012 06:42
static const vector инициализация red6ds Общие вопросы C/C++ 2 06.10.2012 12:03
std::vector и его инициализация coNsept Общие вопросы C/C++ 5 15.06.2012 12:40
STL: vector, инициализация Сtrl Общие вопросы C/C++ 3 07.05.2011 18:41


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840