我们可以在STL列表中保存2种数据类型吗?

时间:2013-09-13 06:28:19

标签: c++ list stl

我希望我的列表包含整数值和字符串值。这可能吗?
我正在使用STL列表实现一个哈希表,它只能存储整数。我正在散列一个字符串来获取我存储整数的索引。现在我希望我的字符串也与整数一起存储。

编辑1:
所以我正在使用这个声明:

    list<pair<int,string>> table[127];    

这是我得到的错误:
>>' should be&GT; &GT;”在嵌套模板参数列表中 好吧我修好了..似乎我没有在“&gt;&gt;”中添加空格所以现在修复

下一个问题
如何将我的对添加到表数组?

3 个答案:

答案 0 :(得分:8)

您可以拥有std::pair的列表,或者使用c ++ 11,std::tuple,例如:

std::list < std::pair< int, std::string > >list;
std::list < std::tuple< int, std::string > >list;

要访问对中的元素,请使用pair.firstpair.second。要访问元组内的元素,请使用std::get

auto t = std::make_tuple(1,"something");
std::get<0>(t);//will get the first element of the tuple

答案 1 :(得分:2)

您可以使用std::pairstd::tuple

std::list<std::pair<int, string>> list;

答案 2 :(得分:1)

您可以将字符串和整数存储在结构中并存储结构的对象。

每个列表元素可以如下所示:

struct element  {
    string str;
    int val;
};

这是C方式处理,请@SingerOfTheFall的回答。