2015-06-22 14 views

Odpowiedz

9

Jeśli używasz () napotkasz most vexing parse. Zadeklarowanej funkcji myVec które ma żadnych argumentów i zwraca vector<pair<string, string>>

Przełącz na {}

vector<pair<string,string>> myVec{}; 
+7

lub alternatywnie, w ogóle nie ma szelki – KABoissonneault

2

próbować używać go tak, obecnie czynność myVec ma parametry i powrócić vector<pair<string,string>>:

vector<pair<string,string>> myVec{}; 

lub

vector<pair<string,string>> myVec; 
10

Nie ma potrzeby, aby zainicjować wektora w taki sposób

vector<pair<string,string>> myVec(); 

Jest to deklaracja funkcji o nazwie myVec że nie posiada parametry i ma typ zwracany vector<pair<string,string>>

Wystarczy napisać po prostu

vector<pair<string,string>> myVec; 

ponieważ w każdym przypadku tworzysz pusty wektor.

Lub jeśli chcesz, że wektor miał pewne wartości początkowe i kompilator C++ 2011 obsługuje następnie można również napisać na przykład

std::vector<std::pair<std::string, std::string>> myVec = 
{ 
    { "first", "first" }, { "second", "second" }, { "third", "third" } 
};