在c ++ 11中结合vector和int?

cel*_*eet 0 c++ types vector c++11

假如我vector<string>已经定义并填充了被叫testint被叫a.如果我想将这两个组合成一个单独的对象combined,我可以combined[0] = test;用向量combined[1] = a;初始化/检索对象,并用int初始化/检索对象,那么最好的功能是什么呢?我该怎么做所以?我试图这样做,vector<vector<string>, int>但这给了我一个错误.注意:如果这很重要,我正在使用-std = c ++ 11进行编译.

Man*_*rse 5

用一个std::tuple<std::vector<std::string>,int>.

#include <tuple>
#include <vector>
#include <string>


int main() {
    std::vector<std::string> test;
    int a{};
    std::tuple<std::vector<std::string>,int> combined;

    //To access elements, use `std::get`:
    std::get<0>(combined) = test;
    std::get<1>(combined) = a;
}
Run Code Online (Sandbox Code Playgroud)

回答cellheet的评论:该函数已经存在,它被调用std::make_tuple()(另见fjardon关于如何存储它的评论).

顺便问一下,你为什么要延长std::vector<std::string>一个int

  • 由于OP使用c ++ 11,他甚至可以写:`auto combined = std :: make_tuple(test,a);` (5认同)