在C++ STL中访问deque元素的最佳方法是什么

Luc*_*Man 4 c++ stl deque

我有一个双子座:

deque<char> My_Deque;
My_Path.push_front('a');
My_Path.push_front('b');
My_Path.push_front('c');
My_Path.push_front('d');
My_Path.push_front('e');
Run Code Online (Sandbox Code Playgroud)

有这样的方法输出它.

首先:

deque<char>::iterator It;
for ( It = My_Deque.begin(); It != My_Deque.end(); It++ )
    cout << *It <<  " ";
Run Code Online (Sandbox Code Playgroud)

第二:

for (i=0;i<My_Deque.size();i++) {
    cout << My_Deque[i] <<  " ";
}
Run Code Online (Sandbox Code Playgroud)

什么是访问双端队列的元素的最佳途径-通过迭代器或类似这样的:My_Deque[i]?deque <...>元素是一个指向每个元素的指针数组,用于快速访问它的数据,或者以连续的方式提供对它的随机元素的访问(如下图所示)? 在此输入图像描述

Mar*_*rst 6

STL 双端队列通常实现为固定大小数组的动态数组,因此索引访问非常有效。


Ker*_* SB 6

既然你要求"最好的方式":

for (char c : My_Deque) { std::cout << c <<  " "; }
Run Code Online (Sandbox Code Playgroud)

  • 我的公司仍然生活在石器时代,这太糟糕了.哦,也许在他们最终升级的几年内,我将能够制作出像这样漂亮干净的循环. (4认同)