通常,函式不應該有 vector 或其他標準庫容器型別的形參。呼叫含有普通的非引用 vector 形參的函式將會複製 vector 的每乙個元素。因此,呼叫含有普通的非引用vector作為形參的函式,無論效率還是資源利用率,都是極大的浪費。
從避免複製 vector 的角度出發,應考慮將形參宣告為引用型別。但是,事實上,c++ 程式設計師傾向於通過傳遞指向容器中需要處理的元素的迭代器來傳遞容器:
考慮下面兩個容器的傳遞:
#include#includeusing namespace std;
void print_vector_pos(vector::const_iterator beg,vector::const_iterator end)
} cout} coutprint_vector_copy(coll);
print_vector_pos(coll.begin(),coll.end());
system("pause");
return 0;
}
直接傳遞迭代器肯定優於傳遞乙個容器的副本。之前在做畢業設計時,就傳遞了容器作為形參,估計得改了。。
c 標準庫 容器類
容器類可以分為兩大類和容器介面卡 1 序列容器 sequence containers 這種容器中的元素是有序的,每乙個元素在容器中都有乙個確切的位置,這個位置不依賴於元素的值,而是跟放入容器的時機有關。標準的序列容器有三個 vector,deque,list。另外你也可以把字串 string 和陣...
C 標準庫容器 Map
本部落格主要簡述了c 標準庫容器map的一些特性 map 的定義及特性 乙個map就是乙個 關鍵碼,值 對偶的序列,它提供基於關鍵碼的快速提取操作。每個關鍵碼至多保持乙個值,換句話說,map中的關鍵碼具有唯一性。簡單來說,map提供了乙個對映關係來查詢元素。map的部分成員 成員定義備註 key關鍵...
STL標準庫 容器 forward list
forward list即單向list,功能少額外開銷就小.而且只能在前段插入元素 結構如下 一 定義 include int main int argc,const char ar return0 二 與迭代器的使用 由於forward list的迭代器內指向記憶體不連續 顧不能做迭代器 操作 i...