在 C++ 的 STL 中,std::deque 是一個(gè)雙端隊(duì)列容器,支持隨機(jī)訪問(wèn)、尾部添加和刪除元素的操作,可以使用迭代器來(lái)訪問(wèn)和操作 deque 中的元素。以下是 std::deque 容器中迭代器的用法。
創(chuàng)建一個(gè)std::deque對(duì)象
std::deque<int> myDeque;
這將創(chuàng)建一個(gè)名為 myDeque 的 std::deque 對(duì)象,其中包含整數(shù)(int)類型的元素。
使用迭代器訪問(wèn) std::deque 中的元素
(1)使用begin()和end()函數(shù)獲取std::deque的起始迭代器和結(jié)束迭代器
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)使用迭代器訪問(wèn)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;
}
上面的代碼通過(guò) for 循環(huán)遍歷整個(gè) deque 容器,并輸出每個(gè)元素的值。
插入和刪除元素
使用迭代器可以在 std::deque 中插入和刪除元素,如下所示:
(1)在指定位置插入一個(gè)元素
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int>::iterator iter = myDeque.begin();
// 在第2個(gè)元素后面插入一個(gè)元素
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個(gè)元素后面插入一組元素
myDeque.insert(iter, newElements.begin(), newElements.end());
(3)在指定位置刪除一個(gè)元素
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::deque<int>::iterator iter = myDeque.begin() + 1;
// 刪除第2個(gè)元素
myDeque.erase(iter);
(4)在指定范圍內(nèi)刪除多個(gè)元素
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個(gè)元素
myDeque.erase(iter_begin, iter_end);
總之,通過(guò)迭代器,C++ 中的 std::deque 容器支持對(duì)雙向隊(duì)列中的元素進(jìn)行訪問(wèn)、插入、刪除等操作,能夠方便地與其它 STL 容器進(jìn)行交互。