#include
#include
#include
using
namespace
std;
int main()
cout
<< endl;
second.assign(it,first.end()-1);
int mytins=;
third.assign(mytins,mytins+3);
cout
<< "size of first: "
<< int(first.size()) << endl;
cout
<< "size of second: "
<< int(second.size()) << endl;
cout
<< "size of second: "
<< int(third.size()) << endl;
//at操作:
deque
mydeque(10);
for(size_t i=0;ifor(auto print:mydeque)
cout
<< print << " ";
cout
<< endl;
//.back():用於返回當前佇列的最後乙個元素
cout
<< mydeque.back() << endl;
//.begin() .end() 是兩個迭代器
for(auto it = mydeque.begin();it!=mydeque.end();++it)
cout
<< *it << " ";
cout
<< endl;
//.cbegin() .cend() 來進行反向的迭代訪問
for(auto it=mydeque.cbegin();it!=mydeque.cend();++it)
cout
<< *it << " ";
cout
<< endl;
//.clear() 用銷毀當前佇列裡面的元素;
mydeque.clear();
mydeque.push_back(10);
mydeque.push_back(1);
mydeque.push_front(2);
for(auto it=mydeque.begin();it!=mydeque.end();++it)
cout
<< *it << " ";
cout
<< endl;
//.emplace(),通過在位置插入新元素來擴充套件容器,雙端佇列可以高效的在開頭和結尾插入或者刪除元素,如果在其他位置插入或
//者刪除元素,那麼效率就會降低;
deque
mydeque1=;
auto it1 = mydeque1.emplace(mydeque1.begin()+1,100);
mydeque1.emplace(it1,200);
mydeque1.emplace(mydeque1.end(),100);
mydeque1.emplace_back(1);
mydeque1.emplace_front(10);
cout
<< "mydeque1 contains: ";
for(auto print:mydeque1)
cout
<< print << " ";
cout
<< endl;
//.empty() 用來判斷是否為空的操作,返回值是乙個bool值
cout
<< boolalpha << mydeque1.empty() << noboolalpha << endl;
//.erase() 支援兩種操作,一種是按照位置進行刪除,另一種是按照範圍進行刪除;
deque
newdeque;
for(size_t i=0;i<20;++i)
newdeque.push_front(i);
newdeque.erase(newdeque.begin()+2);
newdeque.erase(newdeque.begin()+4,newdeque.begin()+7);
for(auto print:newdeque)
cout
<< print << " ";
cout
<< endl;
//.front()用於返回佇列的第乙個元素
mydeque1.push_front(20);
cout
<< mydeque1.front() << endl;
//.get_allocator用於返回乙個拷貝的deque關聯的allocator物件
deque
mydeque2;
int *p;
unsigned
int i=0;
p = mydeque2.get_allocator().allocate(5);
for(i=0;i<5;i++)
mydeque2.get_allocator().construct(&p[i],i);
cout
<< "the allocated contains: ";
for(i=0;i<5;i++)
cout
<< p[i] << " ";
for(i=0;i<5;i++)
mydeque2.get_allocator().destroy(&p[i]);
mydeque2.get_allocator().deallocate(p,5);
//.inerst() 在某個位置精確的插入一些元素,雖然不建議這樣做,但是是可以實現的;
//下面的幾種方式都是insert支援的過載函式:
auto it = mydeque2.begin();
mydeque2.insert(it+2,10);
mydeque2.insert(it+2,3,1);
vector
myvector(3,13);
mydeque2.insert(mydeque2.begin()+2,myvector.begin(),myvector.end());
for(auto it=mydeque2.begin();it!=mydeque2.end();++it)
cout
<< *it << " ";
cout
<< endl;
//.max_size():當前容器所能夠存放的最大值;
cout
<< mydeque2.max_size() << endl;
//operator=
deque
newfirst(3);
deque
newsecond(5);
newsecond = newfirst;
newfirst = deque
();cout
<< "size of newfirst: "
<< int(newfirst.size()) << endl;
cout
<< "size of newsecond: "
<< int(newsecond.size()) << endl;
//.同樣說可以使用來訪問下標元素的;
//.pop_back() 用於佇列的最後乙個元素
mydeque1.pop_back();
//.pop_front()用於刪除開始的第乙個元素
mydeque2.pop_front();
//.push_back()用於在最後乙個新增元素;
mydeque2.push_back(10);
//.push_front()用於在開始位置新增元素;
mydeque2.push_front(20);
//.rbegin()和rend()用來進行反向遍歷;
for(auto it=mydeque1.rbegin();it!=mydeque1.rend();++it)
cout
<< *it << " ";
cout
<< endl;
//.resize() 用於更改size的大小,三種情況和vector類似;
//.shrink_to_fit()和vector的是一樣的;
//.size()用於顯示當前佇列的大小;
mydeque2.size();
//.swap()也可以用來交換兩個相同大小的雙向佇列;
mydeque1.swap(mydeque2);
return
0;}
String的常見操作
返回值型別 命令解釋 intindexof int ch 返回指定字元在此的字串中第一次出現的索引 intlastindexof int ch 返回指定字元在此的字串中最後一次出現的索引 char charat int index 返回字串中index位置上的字元,其中index的取值範圍 0 字串...
queue 的常見操作
include include include using namespace std if 0 1.佇列是一種容器介面卡,用於在fifo上下文中進行操作,其中元素從一段插入,然後在另一端進行提取 2.佇列實現為容器介面卡,使用特定容器類的封裝物件作為其底層容器的類,提供一些特定成員來訪問其中的元素...
StringBuiler的常見操作
stringbuilder常用類庫的特性 1.增 insert offset,資料 2.刪 delete 3.改 replace setcharat getchars int srcbegin,int srcend,char dst,int dstbegin 4.查 indexof 總結 1.與st...