c ++列表随机访问

时间:2011-04-23 22:33:56

标签: c++ list data-structures random-access

  

可能重复:
  How to get a certain element in a list, given the position?

所以在python中你可以以随机访问方式获取列表中的元素....

list = [1,12,3]

print(list[1]) 

并打印12 ....

你可以用c ++列表做同样的事情吗?

我在说这个:http://www.cplusplus.com/reference/stl/list/list/

4 个答案:

答案 0 :(得分:9)

在C ++中,最接近你想要的是一个向量:

std::vector<int> v;
v.push_back(1);
v.push_back(12);
v.push_back(3);
std::cout << v[1] << std::endl; // prints 12

您也可以使用提供的迭代器遍历矢量。但是一旦修改了向量(插入或擦除),它就会变得无效。

提供的实际List类(这是一个双向链表),不提供这种功能。

答案 1 :(得分:1)

如果我理解你的问题,你就是在询问数组

int list [3(size)] = {1,12,3};

cout&lt;&lt;列表[1];

答案 2 :(得分:1)

没有。如果使用std :: list,则必须遍历列表以查找特定元素,因为list是双链表,无法使用随机访问运算符访问元素。 这是因为对于列表,在列表中的任何一点插入或删除都是快速有效的,因此开头的第一个元素可能是修改列表后的第三个元素。

答案 3 :(得分:0)

如果你在谈论C ++ STL列表,不,这是列表的主要问题。