在 C++ 的 STL 中,std::deque 是一个双端队列容器,支持随机访问、尾部添加和删除元素的操作,可以使用迭代器来访问和操作 deque 中的元素。以下是 std::deque 容器中迭代器的用法。
创建一个std::deque对象
std::deque<int> myDeque;
这将创建一个名为 myDeque 的 std::deque 对象,其中包含整数(int)类型的元素。
使用迭代器访问 std::deque 中的元素
(1)使用begin()和end()函数获取std::deque的起始迭代器和结束迭代器
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int>::iterator iter_begin = myDeque.begin();
std::deque<int>::iterator iter_end = myDeque.end();
(2)使用迭代器访问std::deque中的元素
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int>::iterator iter_begin = myDeque.begin();
std::deque<int>::iterator iter_end = myDeque.end();
for (auto iter = iter_begin; iter != iter_end; ++iter) {
std::cout << *iter << std::endl;
}
上面的代码通过 for 循环遍历整个 deque 容器,并输出每个元素的值。
插入和删除元素
使用迭代器可以在 std::deque 中插入和删除元素,如下所示:
(1)在指定位置插入一个元素
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int>::iterator iter = myDeque.begin();
// 在第2个元素后面插入一个元素
myDeque.insert(iter + 1, 6);
(2)在指定位置插入一组元素
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int> newElements = {6, 7, 8};
std::deque<int>::iterator iter = myDeque.begin() + 1;
// 在第2个元素后面插入一组元素
myDeque.insert(iter, newElements.begin(), newElements.end());
(3)在指定位置删除一个元素
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int>::iterator iter = myDeque.begin() + 1;
// 删除第2个元素
myDeque.erase(iter);
(4)在指定范围内删除多个元素
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int>::iterator iter_begin = myDeque.begin() + 1;
std::deque<int>::iterator iter_end = myDeque.begin() + 3;
// 删除第2到4个元素
myDeque.erase(iter_begin, iter_end);
总之,通过迭代器,C++ 中的 std::deque 容器支持对双向队列中的元素进行访问、插入、删除等操作,能够方便地与其它 STL 容器进行交互。