2016-05-24 3 views
-5

Я хочу, чтобы добавить элементы в std::vector<std::pair<std::string, std::list<std::string>> > m_Vec;Вставить в StD :: вектора строки, список пару

с функцией как

void setVec(const std::string &node, const std::string &value) 
{ 
    m_Vec.emplace_back(node, ???);  
} 

Как я могу вставить строку списка значения для моего вектора пара?

Должно выглядеть так:

"id1" -> list of string values 
"id2" -> list of string values 
... 
"id10" -> list of string values 

Порядок здесь важно!

+2

Что вы хотите вставить в вектор? Ваш вектор содержит пары 'string, list ', но ваша функция имеет только два строковых аргумента. – interjay

+0

Создайте список строк с помощью этой функции (сразу добавьте не все строковые значения)! – leon22

+1

Как насчет того, чтобы привести пример, чтобы мы не догадывались? – interjay

ответ

1

Как вставить значения строки списка в мой вектор пар?

Во-первых, создать список:

std::list<std::string> a_list; 

Затем добавить столько строк в списке, как вы хотите. Здесь я добавить одну строку:

a_list.emplace_back("I am a string"); 

Наконец, вы можете скопировать инициализировать список в паре:

m_Vec.emplace_back(node, a_list); 

выше для экспозиции. Копирование можно избежать, и все это можно конденсировать до:

m_Vec.emplace_back(node, std::list<std::string>{"I am a string"}); 
Смежные вопросы