日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++】 C++标准模板库(十) 双向队列

發(fā)布時間:2024/4/21 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++】 C++标准模板库(十) 双向队列 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. C++ Double Ended Queues(雙向隊(duì)列)

雙向隊(duì)列和向量很相似,但是它允許在容器頭部快速插入和刪除(就像在尾部一樣)。

Constructors創(chuàng)建一個新雙向隊(duì)列
Operators比較和賦值雙向隊(duì)列
assign()設(shè)置雙向隊(duì)列的值
at()返回指定的元素
back()返回最后一個元素
begin()返回指向第一個元素的迭代器
clear()刪除所有元素
empty()返回真如果雙向隊(duì)列為空
end()返回指向尾部的迭代器
erase()刪除一個元素
front()返回第一個元素
get_allocator()返回雙向隊(duì)列的配置器
insert()插入一個元素到雙向隊(duì)列中
max_size()返回雙向隊(duì)列能容納的最大元素個數(shù)
pop_back()刪除尾部的元素
pop_front()刪除頭部的元素
push_back()在尾部加入一個元素
push_front()在頭部加入一個元素
rbegin()返回指向尾部的逆向迭代器
rend()返回指向頭部的逆向迭代器
resize()改變雙向隊(duì)列的大小
size()返回雙向隊(duì)列中元素的個數(shù)
swap()和另一個雙向隊(duì)列交換元素

2. C++ Double-Ended Queues(雙向隊(duì)列)


Constructors

語法:
deque();deque( size_type size );deque( size_type num, const TYPE &val );deque( const deque &from );deque( input_iterator start, input_iterator end );

C++ Deques能用以下方式創(chuàng)建:

  • 無參,創(chuàng)建一個空雙向隊(duì)列
  • size - 創(chuàng)建一個大小為size的雙向隊(duì)列
  • num and val - 放置num個val的拷貝到隊(duì)列中,
  • from - 從from創(chuàng)建一個內(nèi)容一樣的雙向隊(duì)列
  • start 和 end - 創(chuàng)建一個隊(duì)列,保存從start到end的元素。

例如,下列代碼創(chuàng)建并顯示一個雙向隊(duì)列:

// 創(chuàng)建一個雙向隊(duì)列,里面有10個1dequedq( 10, 1 );// 創(chuàng)建一個迭代器deque::iterator iter;// 顯示這個雙向隊(duì)列for( iter = dq.begin(); iter != dq.end(); iter++ ){ cout << *iter << endl;}


Operators

語法:
[]

你可以使用[]操作符訪問雙向隊(duì)列中單個的元素。


assign

語法:
void assign( input_iterator start, input_iterator end);void assign( Size num, const TYPE &val );

assign()函數(shù)用start和end指示的范圍為雙向隊(duì)列賦值,或者設(shè)置成num個val。


at

語法:
reference at( size_type pos );

at()函數(shù)返回一個引用,指向雙向隊(duì)列中位置pos上的元素。


back

語法:
reference back();

back()返回一個引用,指向雙向隊(duì)列中最后一個元素。


begin

語法:
iterator begin();

begin()函數(shù)返回一個迭代器,指向雙向隊(duì)列的第一個元素。


clear

語法:
void clear();

clear()函數(shù)刪除雙向隊(duì)列中所有元素。


empty

語法:
bool empty();

empty()返回真如果雙向隊(duì)列為空,否則返回假。


end

語法:
iterator end();

end()函數(shù)返回一個迭代器,指向雙向隊(duì)列的尾部。


erase

語法:
iterator erase( iterator pos );iterator erase( iterator start, iterator end );

erase()函數(shù)刪除pos位置上的元素,或者刪除start和end之間的所有元素。返回值是一個iterator,指向被刪除元素的后一個元素。


front

語法:
reference front();

front()函數(shù)返回一個引用,指向雙向隊(duì)列的頭部。


get_allocator

語法:
allocator_type get_allocator();

get_allocator()函數(shù)返回雙向隊(duì)列的配置器。


insert

語法:
iterator insert( iterator pos, size_type num, const TYPE &val );void insert( iterator pos, input_iterator start, input_iterator end );

insert()在pos前插入num個val值,或者插入從start到end范圍內(nèi)的元素到pos前面。


max_size

語法:
size_type max_size();

max_size()返回雙向隊(duì)列能容納的最大元素個數(shù)。


pop_back

語法:
void pop_back();

pop_back()刪除雙向隊(duì)列尾部的元素。


pop_front

語法:
void pop_front();

pop_front()刪除雙向隊(duì)列頭部的元素。


push_back

語法:
void push_back( const TYPE &val );

push_back()函數(shù)在雙向隊(duì)列的尾部加入一個值為val的元素。


push_front

語法:
void push_front( const TYPE &val );

push_front()函數(shù)在雙向隊(duì)列的頭部加入一個值為val的元素。


rbegin

語法:
reverse_iterator rbegin();

rbegin()返回一個指向雙向隊(duì)列尾部的逆向迭代器。


rend

語法:
reverse_iterator rend();

rend()返回一個指向雙向隊(duì)列頭部的逆向迭代器。


resize

語法:
void resize( size_type num, TYPE val );

resize()改變雙向隊(duì)列的大小為num,另加入的元素都被填充為val。


size

語法:
size_type size();

size()函數(shù)返回雙向隊(duì)列中的元素個數(shù)。


swap

語法:
void swap( deque &target );

swap()函數(shù)交換target和現(xiàn)雙向隊(duì)列中元素。


總結(jié)

以上是生活随笔為你收集整理的【C++】 C++标准模板库(十) 双向队列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。