deque!

deque:双端队列

  比较常用的函数:

  que.back() 返回容器que的最后一个元素的引用。如果que为空,则该操作未定义。

  que.begin() 传回迭代器中的第一个数据地址。

  que.clear() 移除容器中所有数据。

       que.empty() 判断容器是否为空。

       que.end() 返回一个迭代器,它指向容器que的最后一个元素的下一位置。

   que.front() 返回容器que的第一个元素的引用。如果que为空,则该操作为空。

       que.pop_back() 删除最后一个数据。

       que.pop_front() 删除头部数据。

  que.push_back(elem) 在尾部加入一个数据。

  que.push_front(elem) 在头部插入一个数据。

  que.size() 返回容器中实际数据的个数。

  不是很常用的函数:

    que.assign(beg,end) 将[beg; end)区间中的数据赋值给que。

  que.assign(n,elem) 将n个elem的拷贝赋值给que。

  que. at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。

    que.erase(pos) 删除pos位置的数据,传回下一个数据的位置。

  que.erase(beg,end) 删除[beg,end)区间的数据,传回下一个数据的位置。

  que.max_size() 返回容器que可容纳的最多元素个数。

       que.insert(pos,elem) 在pos位置插入一个elem拷贝,传回新数据位置

  que.insert(pos,n,elem) 在pos(迭代器)位置插入>n个elem数据。无返回值

       que.insert(pos,beg,end) 在pos位置插入在[beg,end)区间的数据。无返回值

  que.rbegin() 返回一个逆序迭代器,它指向容器que的最后一个元素。

   que.rend() 返回一个逆序迭代器,它指向容器que的第一个元素的前一个位置。

  que.resize(num) 重新指定队列的长度。

   que.swap(que2) 交换容器que和que2中的所有元素。

       swap(que1,que2) 交换容器que1和que2中的所有元素。

用途:维护区间最大最小值(O(n))

上一篇:数值计算:粒子群优化算法(PSO)


下一篇:粒子群优化算法对BP神经网络优化 Matlab实现