C++之STL--什么是双端队列(Deque)

C++之STL--什么是双端队列Deque

双端队列表示双端队列。它属于数据结构队列中的一种,即可以从前端或后端的两端进行插入和删除。

Deque创建方式deque variable
同样需要声明头文件#include

#include 
#include 

using namespace std;

int main() {

    deque<string> deque_string;
    deque_string.emplace_back("hello world!");
    deque_string.emplace_back("i am a algorithm engineer");
    deque<string>::iterator iterator1 = deque_string.begin();
    cout << "------------deque_string--------------" << endl;
    while (iterator1 != deque_string.end()) {
        cout << *iterator1 << endl;
        ++iterator1;
    }
    deque<string> copy_string;
    copy_string.operator=(deque_string);
    cout << "------------copy_string---------------" << endl;
    for (deque<string>::iterator iterator1 = copy_string.begin(); iterator1 != copy_string.end();
         ++iterator1) {
        cout << *iterator1;
    }
    cout << endl;
    cout << "deque_maxsize:" << copy_string.max_size() << endl;
    cout << "maxsize_two:" << deque_string.max_size() << endl;
    cout << deque_string.empty() << endl;
    return 0;
}
输出:
------------deque_string--------------
hello world!
i am a algorithm engineer
------------copy_string---------------
hello world!i am a algorithm engineer
deque_maxsize:576460752303423487
maxsize_two:576460752303423487
0 //deque对象不为null

deque常用函数与vector相似

函数 介绍
assign() 它分配新内容并替换旧内容。
emplace() 它将在指定位置添加一个新元素。
emplace_back() 它在末尾添加一个新元素。
emplace_front() 它在双端队列的开头添加一个新元素。
insert() 它在指定位置之前添加一个新元素。
push_back() 它在容器的末尾添加一个新元素。
push_front() 它在容器的开头添加一个新元素。
pop_back() 它从双端队列中删除最后一个元素。
pop_front() 它从双端队列中删除第一个元素。
swap() 它交换两个双端队列的内容。
clear() 它将删除双端队列的所有内容。
empty() 它检查容器是否为空。
erase() 它删除元素。
max_size() 它确定双端队列的最大大小。
resize() 它改变了双端队列的大小。
shrink_to_fit() 它减少了内存以适合双端队列的大小。
size() 它返回元素数。
at() 它访问位置pos处的元素。
operator 它访问位置pos处的元素。
operator=() 它将新的内容分配给容器。
back() 它访问最后一个元素。
begin() 它将迭代器返回到双端队列的开头。
cbegin() 它向双端队列的开头返回一个常量迭代器。
end() 它将迭代器返回到末尾。
cend() 它将常量迭代器返回到末尾。
rbegin() 它将反向迭代器返回到开头。
crbegin() 它将常量反向迭代器返回到开头。
rend() 它将反向迭代器返回到末尾。
crend() 它将常量反向迭代器返回到末尾。
front() 它访问最后一个元素。

你可能感兴趣的:(C++基础,c++)