可能重複:
How to get a certain element in a list, given the position?C++名單隨機存取
所以在Python中,你可以在隨機訪問方式列表獲取元素....
list = [1,12,3]
print(list[1])
它打印12 ....
你可以用C++ list做同樣的事嗎?沿着http://www.cplusplus.com/reference/stl/list/list/
可能重複:
How to get a certain element in a list, given the position?C++名單隨機存取
所以在Python中,你可以在隨機訪問方式列表獲取元素....
list = [1,12,3]
print(list[1])
它打印12 ....
你可以用C++ list做同樣的事嗎?沿着http://www.cplusplus.com/reference/stl/list/list/
在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類(它是一個雙向鏈表)不提供這種功能。
是的,就實現而言C++向量與Python列表最爲相似。 – 2011-04-23 22:38:06
這個答案很好,但如果通常的用法就像一個列表,但是隨機訪問,我實際上會推薦'std :: deque'。 – 2011-04-23 22:55:42
如果我理解你的問題吧,你問陣列
INT表[3(大小)] = {1,12,3};
cout < < list [1];
如果您正在討論C++ STL列表,不,那是列表的主要問題。
沒有。如果使用std :: list,則必須迭代列表以查找特定元素,因爲列表是雙鏈表,所以不能使用隨機訪問運算符訪問元素。 這是因爲對於列表來說,在列表中的任意位置插入或刪除都是快速而有效的,因此在修改列表之後,開始時的第一個元素是第三個元素。
你在談論數組或鏈表嗎?請注意,對於鏈接列表,「O(1)」隨機訪問是不可能的。在鏈表上隨機訪問的最好方法是'O(n)'。 – 2011-04-23 22:37:11
是啊,你能更詳細地說明你的意思嗎? – cost 2011-04-23 22:38:11
誰說Python列表是C++列表? – GManNickG 2011-04-23 22:42:09