最近工作中需要用到標準模板庫的容器, 按輸入的值在容器上查詢到對應的位置,然後輸出該位置後的在考慮是選用map還是vector的時候, 經過測試我最終選定用vector容器.
原因如下:
用map容器我需要用string作為主鍵進行快速查詢.我用如下**測試:
typedef std::mapfilemap;
filemap::iterator iter;
int i = 0;
filemap m_filemap;
char szkey[20] = ;
while ( i < 10000 )
iter = m_filemap.find("key 5000");
for ( ; iter != m_filemap.end(); ++iter )
發現輸出的的順序都亂了, 不是和insert 的順序一樣. 理想狀態應該輸出為key 5000 ---5000... key 9999---9999.
分析得出應該是map以string作為主鍵存放的順序和map以int作為主鍵存放的順序不同(以int為主鍵時能夠按理想狀態輸出).因此如果選用map達不到我的要求.
用vector容器
typedef std::vectorfilevector;
filevector::iterator iter;
filevector m_filevector;
int i = 0;
while ( i < 10000 )
iter = find(m_filevector.begin(), m_filevector.end(), "key 5000");
for ( ; iter != m_filemap.end(); ++iter )
能夠根據給定的值快速的查詢到指定位置, 然後從指定位置根據push_back的順序輸出. 實現了我要的功能.
標準模板庫( ) 介紹標準模板庫
標準模板庫就是類與函式模板的大集合。stl共有6種元件 容器,容器介面卡,迭代器,演算法,函式物件和函式介面卡。1 容器 容器是用來儲存和組織其他物件的物件。stl容器類的模板在標準標頭檔案中定義。1 序列容器是上面圖中的前三類 容器的操作 2 deque容器 非常類似vector,且支援相同的操作...
標準模板庫
c primer plus是乙個精心設計的,在今天的乙個最重要的和廣泛使用的程式語言的完整教程。乙個方便和易於使用的自學指南,這本書是適當的節目都認真的學生以及已經精通其他語言的開發人員。第六版c primer plus已更新和擴大覆蓋在c 的最新進展,包括新的c 11標準的詳細介紹。作家和教育家史...
標準模板庫
vector iterator pd vector scores pd scores.begin pd 22.3 pd pd scores.end 指向容器最後乙個元素後面的那個元素scores.erase scores.begin scores.begin 2 第乙個迭代器指向區間的起始處,第二個...