青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

一. 種類:
標準STL序列容器:vector、string、deque和list。
標準STL關聯容器:set、multiset、map和multimap。
非標準序列容器slist和rope。slist是一個單向鏈表,rope本質上是一個重型字符串
非標準關聯容器hash_set、hash_multiset、hash_map和hash_multimap。
幾種標準非STL容器,包括數組、bitset、valarray、stack、queue和priority_queue
值得注意的是,數組可以和STL算法配合,因為指針可以當作數組的迭代器使用。
  二.刪除元素
如果想刪除東西,記住remove算法后,要加上erase
所謂刪除算法,最終還是要調用成員函數去刪除某個元素,但是因為remove并不知道它現在作用于哪個容器,所以remove算法不可能真的刪除一個元素
1.Vector

vector<int> v;   
v.reserve(
10);   
for (int i = 1; i <= 10++i) {
 v.push_back(i);
}
cout 
<< v.size();   // 10
v[3= v[5= v[9= 99
remove(v.begin(), v.end(), 
99); 
//v.erase(remove(v.begin(),v.end(),99),v.end());
cout << v.size();   // 10!


2. list
list<int> listTest;
listTest.remove(99);//這個成員函數將真的刪除元素,并且要比erase+remove高效
remove和remove_if之間的十分相似。但unique行為也像remove。它用來從一個區間刪除東西(鄰近的重復值)而不用訪問持有區間元素的容器。如果你真的要從容器中刪除元素,你也必須成對調用unique和erase,unique在list中也類似于remove。正像list::remove真的刪除東西(而且比erase-remove慣用法高效得多)。list::unique也真的刪除鄰近的重復值(也比erase-unique高效)。
 
三 迭代器失效:
 
一個網友提的問題:

void   main() 

vector 
<string> vcs; 
vcs.push_back( 
"this   is   A "); 
vector 
<string   > ::iterator   it=vcs.begin(); 
int   i=9
for(;it!=vcs.end();++it) 

cout 
< < "caplity   of   vector   is   :   " < <vcs.size() < <endl; 

cout 
< < "---> " < <*it < <endl;   //去掉此句會有一個超過vector 
                                   
//大小的循環,高手能解釋一下為什么? 
if(i==9

vcs.push_back( 
"this   is   BBBBB "); 
cout 
< < "vcs.push! " < <endl; 

i
=8

}


典型的迭代器失效....
 
vector:
1.當插入(push_back)一個元素后,end操作返回的迭代器肯定失效。
2.當插入(push_back)一個元素后,capacity返回值與沒有插入元素之前相比有改變,則需要重新加載整個容器,此時first和end操作返回的迭代器都會失效。
3.當進行刪除操作(erase,pop_back)后,指向刪除點的迭代器全部失效;指向刪除點后面的元素的迭代器也將全部失效。
deque迭代器的失效情況:
1.在deque容器首部或者尾部插入元素不會使得任何迭代器失效。
2.在其首部或尾部刪除元素則只會使指向被刪除元素的迭代器失效。
3.在deque容器的任何其他位置的插入和刪除操作將使指向該容器元素的所有迭代器失效。
List/set/map
1.刪除時,指向該刪除節點的迭代器失效

list<int> intList; 
list
<int>::iterator it = intList.begin(); 
while(it != intList.end()) 

it 
= intList.erase(it); 
…… 
}


四.選擇時機<轉>--總結各種容器特點
(1) vector
內部數據結構:數組。
隨機訪問每個元素,所需要的時間為常量。
在末尾增加或刪除元素所需時間與元素數目無關,在中間或開頭增加或刪除元素所需時間隨元素數目呈線性變化。
可動態增加或減少元素,內存管理自動完成,但程序員可以使用reserve()成員函數來管理內存。
vector的迭代器在內存重新分配時將失效(它所指向的元素在該操作的前后不再相同)。當把超過capacity()-size()個元素插入vector中時,內存會重新分配,所有的迭代器都將失效;否則,指向當前元素以后的任何元素的迭代器都將失效。當刪除元素時,指向被刪除元素以后的任何元素的迭代器都將失效。

(2)deque
內部數據結構:數組。
隨機訪問每個元素,所需要的時間為常量。
在開頭和末尾增加元素所需時間與元素數目無關,在中間增加或刪除元素所需時間隨元素數目呈線性變化。
可動態增加或減少元素,內存管理自動完成,不提供用于內存管理的成員函數。
增加任何元素都將使deque的迭代器失效。在deque的中間刪除元素將使迭代器失效。在deque的頭或尾刪除元素時,只有指向該元素的迭代器失效。

(3)list
內部數據結構:雙向環狀鏈表。
不能隨機訪問一個元素。
可雙向遍歷。
在開頭、末尾和中間任何地方增加或刪除元素所需時間都為常量。
可動態增加或減少元素,內存管理自動完成。
增加任何元素都不會使迭代器失效。刪除元素時,除了指向當前被刪除元素的迭代器外,其它迭代器都不會失效。

(4)slist
內部數據結構:單向鏈表。
不可雙向遍歷,只能從前到后地遍歷。
其它的特性同list相似。

(5)stack
適配器,它可以將任意類型的序列容器轉換為一個堆棧,一般使用deque作為支持的序列容器。
元素只能后進先出(LIFO)。
不能遍歷整個stack。

(6)queue
適配器,它可以將任意類型的序列容器轉換為一個隊列,一般使用deque作為支持的序列容器。
元素只能先進先出(FIFO)。
不能遍歷整個queue。

(7)priority_queue
適配器,它可以將任意類型的序列容器轉換為一個優先級隊列,一般使用vector作為底層存儲方式。
只能訪問第一個元素,不能遍歷整個priority_queue。
第一個元素始終是優先級最高的一個元素。

(8)set
鍵和值相等。
鍵唯一。
元素默認按升序排列。
如果迭代器所指向的元素被刪除,則該迭代器失效。其它任何增加、刪除元素的操作都不會使迭代器失效。

(9)multiset
鍵可以不唯一。
其它特點與set相同。

(10)hash_set
與set相比較,它里面的元素不一定是經過排序的,而是按照所用的hash函數分派的,它能提供更快的搜索速度(當然跟hash函數有關)。
其它特點與set相同。

(11)hash_multiset
鍵可以不唯一。
其它特點與hash_set相同。

(12)map
鍵唯一。
元素默認按鍵的升序排列。
如果迭代器所指向的元素被刪除,則該迭代器失效。其它任何增加、刪除元素的操作都不會使迭代器失效。

(13)multimap
鍵可以不唯一。
其它特點與map相同。

(14)hash_map
與map相比較,它里面的元素不一定是按鍵值排序的,而是按照所用的hash函數分派的,它能提供更快的搜索速度(當然也跟hash函數有關)。
其它特點與map相同。

(15)hash_multimap
鍵可以不唯一。
其它特點與hash_map相同。

解決方法:

bool Equal10(sMem* pMem)
{
    
return pMem->GetI() == 10 ? true : false;
}

1MemList.erase(remove_if(MemList.begin(), MemList.end(), Equal10));

for (sIT it = MemList.begin();it != MemList.end(); )
{
       
if ((*it).second->GetI() == 10)
           MemList.erase(it
++);
       
else
       {
           printf(
"%d:%d\n", i++, (*it).second->GetI());
           it
++;
        }
}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲区一区二| 欧美激情一区二区| 亚洲女人天堂成人av在线| 欧美韩日一区二区| 亚洲区中文字幕| 欧美福利小视频| 亚洲免费一区二区| 亚洲午夜精品一区二区三区他趣| 国产欧美不卡| 欧美成人午夜激情视频| 性欧美长视频| 91久久线看在观草草青青| 欧美一区=区| 亚洲精品美女在线观看播放| 国产婷婷色一区二区三区| 欧美精品二区三区四区免费看视频| 亚洲永久免费视频| 亚洲人线精品午夜| 亚洲与欧洲av电影| 欧美中日韩免费视频| 一区二区三区精品久久久| 欧美成人在线免费视频| 亚洲激情网址| 亚洲一区二区伦理| 老色鬼久久亚洲一区二区| 欧美在线www| 欧美国产综合一区二区| 国产精品网曝门| 国产精品久久久久久影视| 欧美日韩免费高清| 麻豆成人av| 麻豆精品传媒视频| 国产精品免费区二区三区观看| 狠狠色丁香婷综合久久| 国产日韩在线一区二区三区| 国产精品一区二区在线观看网站| 欧美另类videos死尸| 欧美在线视频免费观看| 欧美成人精品h版在线观看| 久久综合九九| 国产精品一区久久久久| 在线观看日韩www视频免费 | 狠狠入ady亚洲精品经典电影| 亚洲日本视频| 久久婷婷久久一区二区三区| 久久亚洲午夜电影| 亚洲一区二区三区免费视频| 欧美1区3d| 欧美无砖砖区免费| 国产精品久久久久久影院8一贰佰| 在线国产亚洲欧美| 亚洲精品视频二区| 美女脱光内衣内裤视频久久网站| 久久日韩粉嫩一区二区三区| 久久蜜臀精品av| 午夜精品久久久久久久白皮肤| 欧美一区二区三区久久精品茉莉花| 久久久成人精品| 欧美顶级大胆免费视频| 亚洲第一成人在线| 欧美国产精品劲爆| 噜噜噜久久亚洲精品国产品小说| 国精品一区二区三区| 亚洲人成高清| 香蕉av福利精品导航| 久久免费视频这里只有精品| 亚洲欧洲99久久| 国产日韩欧美一二三区| 久久国产精品久久久久久| 亚洲免费在线视频| 99在线精品视频| 久久精品国产第一区二区三区最新章节 | 国产一区二区在线观看免费| 亚洲动漫精品| 午夜免费电影一区在线观看| 久久先锋资源| 久久综合色8888| 亚洲精品美女91| 99视频在线精品国自产拍免费观看 | 欧美呦呦网站| 香蕉av777xxx色综合一区| 久久精品一级爱片| 国产乱码精品1区2区3区| 午夜精品久久久久久久99樱桃| 亚洲视频一区二区| 久久精品一区二区国产| 国产综合久久久久久| 欧美成年人视频| 销魂美女一区二区三区视频在线| 国产欧美精品xxxx另类| 久久婷婷国产综合国色天香| 久久综合久久综合久久综合| 一本色道久久88综合日韩精品| 久久综合久久综合九色| 欧美成人四级电影| 午夜日韩在线| 玖玖综合伊人| 亚洲欧美日韩精品久久久久| 久久久综合网| 国一区二区在线观看| 亚洲高清在线视频| 欧美中文字幕在线| 99国产精品| 日韩午夜激情电影| 欧美日韩国产区| 亚洲精品在线电影| 亚洲电影在线看| 国产乱肥老妇国产一区二| 欧美国产日韩二区| 国产欧美一区二区视频| 亚洲精品乱码久久久久久蜜桃91 | 美国三级日本三级久久99| 一区二区欧美日韩| 影音先锋在线一区| 亚洲一区在线免费| 亚洲深夜福利视频| 亚洲午夜激情| 国产欧美不卡| 亚洲精品小视频在线观看| 欧美激情a∨在线视频播放| 欧美一级理论性理论a| 欧美激情第10页| 老司机久久99久久精品播放免费| 国产精品乱码一区二三区小蝌蚪| 亚洲高清不卡在线| ●精品国产综合乱码久久久久| 香蕉久久a毛片| 亚洲综合色视频| 欧美一区二区日韩一区二区| 夜夜嗨网站十八久久| 久久综合五月天婷婷伊人| 久久精品午夜| 国产伦精品一区二区三区高清版| 99精品国产在热久久下载| 亚洲日韩成人| 欧美精品乱人伦久久久久久 | 亚洲专区一二三| 尤物网精品视频| 亚洲欧美视频在线观看视频| 一本一道久久综合狠狠老精东影业 | 激情久久综艺| 老司机成人网| 国内成人精品2018免费看 | 欧美精品日韩| 亚洲精品免费观看| 日韩亚洲欧美在线观看| 免费日韩成人| 亚洲日本乱码在线观看| 一区二区三区高清在线| 午夜国产精品视频| 久久riav二区三区| 国产字幕视频一区二区| 欧美在线精品一区| 欧美成人视屏| 99在线|亚洲一区二区| 国产精品成人一区二区网站软件| 久久综合伊人| 亚洲国产精品精华液2区45| 欧美a级一区二区| 亚洲人成网站在线观看播放| 一本色道久久综合亚洲精品不 | 国产乱码精品一区二区三区不卡| 午夜国产不卡在线观看视频| 久久综合色影院| 亚洲欧洲偷拍精品| 欧美视频在线播放| 欧美激情导航| 一区二区三区国产在线| 国产精品自拍三区| 久久视频在线看| 久久成人这里只有精品| 精品电影一区| 欧美日韩一区二区三区在线视频| 亚洲午夜久久久| 免费国产自线拍一欧美视频| 日韩视频精品在线| 国产一区二区三区视频在线观看| 欧美a级片网| 欧美一区在线视频| 99国产欧美久久久精品| 久久综合给合| 亚洲男人第一av网站| 亚洲国产日韩一级| 欧美 日韩 国产 一区| 亚洲永久免费av| 亚洲精品裸体| 久热精品视频在线观看一区| 亚洲一本视频| 亚洲精品资源| 一区二区三区在线观看国产| 国产精品久久久久久福利一牛影视| 久热爱精品视频线路一| 午夜视频在线观看一区| 一区二区欧美视频| 最新成人av在线| 欧美国产日韩精品| 欧美成人按摩| 久久久久久久久久看片| 在线免费精品视频| 日韩视频在线观看国产|