【问题标题】:How to initialize a vector of pair of string,string in a c++ class?如何在 C++ 类中初始化一对字符串、字符串的向量?
【发布时间】:2015-09-08 06:18:55
【问题描述】:

如何在 C++ 类中初始化一对字符串的向量?我尝试了几件事,但都没有成功。

vector<pair<string,string>> myVec(); //doesn't work

【问题讨论】:

    标签: c++ c++11 vector initialization std-pair


    【解决方案1】:

    如果您使用(),您会遇到most vexing parse。你声明了一个不带参数的函数myVec,并返回一个vector&lt;pair&lt;string, string&gt;&gt;

    切换到{}

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

    【讨论】:

    • 或者,根本不用大括号
    【解决方案2】:

    尝试这样使用,目前你的函数myVec没有参数并返回vector&lt;pair&lt;string,string&gt;&gt;

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

    vector<pair<string,string>> myVec;
    

    【讨论】:

      【解决方案3】:

      这种方式不需要初始化向量

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

      这是一个名为myVec的函数声明,没有参数,返回类型为vector&lt;pair&lt;string,string&gt;&gt;

      简单写就够了

      vector<pair<string,string>> myVec;
      

      因为无论如何您都在创建一个空向量。

      或者,如果您希望向量具有一些初始值并且您的编译器支持 C++ 2011,那么您也可以编写示例

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

      【讨论】:

        猜你喜欢
        • 2019-06-17
        • 1970-01-01
        • 2013-05-20
        • 2011-05-15
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多