Jak zainicjować wektor pary ciągów w klasie C++? Próbowałem kilku rzeczy, ale żaden nie działał.Jak zainicjować wektor pary łańcuchów, ciągów w klasie C++?
vector<pair<string,string>> myVec(); //doesn't work
Jak zainicjować wektor pary ciągów w klasie C++? Próbowałem kilku rzeczy, ale żaden nie działał.Jak zainicjować wektor pary łańcuchów, ciągów w klasie C++?
vector<pair<string,string>> myVec(); //doesn't work
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{};
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;
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" }
};
lub alternatywnie, w ogóle nie ma szelki – KABoissonneault