STL deque访问元素

STL deque访问元素教程

STL 中的 deque 容器的访问可以使用下标索引的形式、使用 at 的形式、使用 front 和 back 来分别访问第一个元素和最后一个元素、还可以使用 begin 和 end 来访问元素。

STL deque访问元素

语法

deq[index]

参数

参数 描述
deq 需要访问的队列。
index 队列的索引。

说明

可以通过 容器名 [] 的方式直接访问和使用容器中的元素,这和 C++ 标准容器访问元素的方式相同。

技术细节

需要注意的是,使用如上这样方式,由于没有做任何边界检查,所以即便使用越界的索引值去访问或存储元素,也不会被检测到。

STL deque at访问元素

语法

deq.at(index)

参数

参数 描述
deq 需要访问的队列。
index 队列的索引。

说明

为了能够有效地避免越界访问的情况,可以使用 deque 容器提供的 at() 成员函数。

技术细节

当传给 at() 的索引是一个越界值时,程序会抛出 std::out_of_range 异常。因此当需要访问容器中某个指定元素时,建议大家使用 at(),除非确定索引没有越界。

STL deque front和back访问元素

语法

deq.front() deq.back()

参数

参数 描述
deq 需要访问的队列。

说明

通过使用 front 可以访问第一个元素、使用 back 访问最后一个元素。

STL deque begin和end访问元素

语法

deq.begin() deq.end()

参数

参数 描述
deq 需要访问的队列。

说明

通过使用 begin 可以访问第一个元素、使用 end 访问最后一个元素。

案例

使用索引访问deque元素

使用下标索引的形式访问 deque 元素

#include <iostream> #include <deque> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> deq{"Hello", "World", "HaiCoder", "haicoder.net", "www.haicoder.net"}; cout << "deq1 = " << deq[0] << endl; cout << "deq2 = " << deq[1] << endl; cout << "deq3 = " << deq[2] << endl; return 0; }

因为,这里需要使用 C++ 11,因此,我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ vector.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

42_C STL deque访问元素.png

我们使用了下标索引的形式,访问了 deque 的元素,第一个元素下标是 0。

使用at访问deque元素

使用 at 的形式访问 deque 元素

#include <iostream> #include <deque> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> deq{"Hello", "World", "HaiCoder", "haicoder.net", "www.haicoder.net"}; cout << "deq1 = " << deq.at(0) << endl; cout << "deq2 = " << deq.at(1) << endl; cout << "deq3 = " << deq.at(2) << endl; return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

43_C STL deque访问元素.png

我们使用了 at 的形式,访问了队列的元素,第一个元素下标是 0。

使用front和back访问deque元素

使用 front 访问 deque 第一个元素使用 back 访问 deque 最后一个元素

#include <iostream> #include <deque> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> deq{"Hello", "World", "HaiCoder", "haicoder.net", "www.haicoder.net"}; cout << "deq1 = " << deq.front() << endl; cout << "deq2 = " << deq.back() << endl; return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

44_C STL deque访问元素.png

通过 front 获取第一个元素,接着,通过 back 获取最后一个元素。

使用front和back访问deque元素

使用 front 访问 deque 第一个元素使用 back 访问 deque 最后一个元素

#include <iostream>#include <deque>using namespace std;int main(){ cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> deq{"Hello", "World", "HaiCoder", "haicoder.net", "www.haicoder.net"}; auto first = deq.begin() + 1; auto end = deq.end() - 1; while ( first != end ) { cout << *first++ << " "; } cout << endl; return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

45_C STL deque访问元素.png

通过 begin 获取第一个元素,接着,通过 end 获取最后一个元素。

STL deque访问元素总结

STL 中的 deque 容器的访问可以使用下标索引的形式、使用 at 的形式、使用 front 和 back 来分别访问第一个元素和最后一个元素、还可以使用 begin 和 end 来访问元素。