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

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

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

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

Ответ
 
Опции темы
Старый 21.03.2015, 21: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, 22:04   #2
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,236
По умолчанию

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

Код:
    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, 22: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, 23:08   #4
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,236
По умолчанию

Ваш компилятор не поддерживает 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 в 23:13.
8Observer8 вне форума   Ответить с цитированием
Старый 22.03.2015, 15:29   #5
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от FULEREN Посмотреть сообщение
Пытаюсь инициализировать вектор в заголовочном файле класса, что бы потом с ним работать.
В заголовочном файле должно быть только простое объявление. Определение - в cpp.
Somebody вне форума   Ответить с цитированием
Старый 22.03.2015, 16: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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


07:00.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.