deque的相关操作

发布时间 2023-07-12 14:45:58作者: luck_god
  • 创建deque:可以使用默认构造函数创建一个空的deque,或使用带有初始元素的构造函数创建一个具有初始值的deque。例如:

    cpp
    • std::deque<int> d1; // 创建一个空的整数双端队列 std::deque<int> d2(5); // 创建一个具有5个默认初始化值的整数双端队列 std::deque<int> d3 = {1, 2, 3, 4, 5}; // 创建一个具有初始值的整数双端队列
    • 添加和访问元素:可以使用push_back()push_front()函数在队尾和队首添加元素,使用pop_back()pop_front()函数分别从队尾和队首删除元素。可以使用[]运算符或at()函数访问指定位置的元素。例如:

      cpp
    • std::deque<int> d; d.push_back(10); // 在队尾添加一个元素 d.push_front(20); // 在队首添加一个元素 int backElement = d.back(); // 获取队尾元素 int frontElement = d.front(); // 获取队首元素 d.pop_back(); // 删除队尾元素 d.pop_front(); // 删除队首元素
    • 获取deque大小:可以使用size()函数获取deque中元素的个数。例如:

      cpp
    • std::deque<int> d = {1, 2, 3, 4, 5}; int size = d.size(); // 获取`deque`的大小,即元素个数
    • 遍历deque:可以使用循环结构(如for循环或范围for循环)遍历deque中的元素。例如:

      cpp
    std::deque<int> d = {1, 2, 3, 4, 5};
    for (int i = 0; i < d.size(); i++) {
        std::cout << d[i] << " "; // 输出每个元素
    }
    std::cout << std::endl;
    
    // 或者使用范围for循环
    for (int element : d) {
        std::cout << element << " "; // 输出每个元素
    }
    std::cout << std::endl;
  • 插入元素:可以使用insert()函数在指定位置插入一个或多个元素。可以通过指定插入位置的迭代器和插入元素的值或范围来进行插入操作。例如:
cpp
  • std::deque<int> d = {1, 2, 3, 4, 5}; auto it = d.begin() + 2; d.insert(it, 10); // 在第三个位置插入元素 d.insert(it, 3, 7); // 在第三个位置插入3个值为7的元素
  • 清空deque:可以使用clear()函数删除deque中的所有元素,使其变为空的deque。例如:

    cpp
  • std::deque<int> d = {1, 2, 3, 4, 5}; d.clear(); // 清空`deque`
  • 反转deque:可以使用reverse()函数将deque中的元素反转顺序。例如:

    cpp
  • std::deque<int> d = {1, 2, 3, 4, 5}; std::reverse(d.begin(), d.end()); // 反转`deque`中的元素
  • 替换元素:可以使用replace()函数将指定值的元素替换为新的值。例如,将deque中所有值为2的元素替换为10:

    cpp