【发布时间】:2015-09-08 06:18:55
【问题描述】:
如何在 C++ 类中初始化一对字符串的向量?我尝试了几件事,但都没有成功。
vector<pair<string,string>> myVec(); //doesn't work
【问题讨论】:
标签: c++ c++11 vector initialization std-pair
如何在 C++ 类中初始化一对字符串的向量?我尝试了几件事,但都没有成功。
vector<pair<string,string>> myVec(); //doesn't work
【问题讨论】:
标签: c++ c++11 vector initialization std-pair
如果您使用(),您会遇到most vexing parse。你声明了一个不带参数的函数myVec,并返回一个vector<pair<string, string>>
切换到{}
vector<pair<string,string>> myVec{};
【讨论】:
尝试这样使用,目前你的函数myVec没有参数并返回vector<pair<string,string>>:
vector<pair<string,string>> myVec{};
或
vector<pair<string,string>> myVec;
【讨论】:
这种方式不需要初始化向量
vector<pair<string,string>> myVec();
这是一个名为myVec的函数声明,没有参数,返回类型为vector<pair<string,string>>
简单写就够了
vector<pair<string,string>> myVec;
因为无论如何您都在创建一个空向量。
或者,如果您希望向量具有一些初始值并且您的编译器支持 C++ 2011,那么您也可以编写示例
std::vector<std::pair<std::string, std::string>> myVec =
{
{ "first", "first" }, { "second", "second" }, { "third", "third" }
};
【讨论】: