容器
容器一般通過模板來實現,即容器一般為模板的例項化。
向量容器(標頭檔案#include
)
如果想建立特定型別的向量,需要使用的語法為:std::vectorvectorname;
比如,std::vectornames;
即定義了乙個字串向量。
1) 向量可以動態地隨著你往它裡面新增元素而無限增大——只要還有記憶體可用。我們可以隨時用向量的 size() 方法查詢某給定向量的當前長度(當前包含的元素個數):names.size();
2) 定義了乙個向量之後,就可以用 push_back() 方法往它裡面新增東西了:names.push_back("xiuxiu")
3) 可以用訪問陣列元素的語法來訪問某給定向量裡的各個元素:names[1];
4) 因為向量的長度僅受限於計算機上的可用記憶體,所以它非常適合用來讀取數量未知的使用者輸入。
迭代器( iterator )
迭代器是從容器那裡「申請」 來的,因為只有容器才知道哪一種迭代器最適合它的內部表示形式;
迭代器的真正價值體現在它們可以和所有的容器配合使用,而使用迭代器去訪問容器元素的演算法可以和任何一種容器配合使用。
如果想把c++標準庫里的演算法用於自己的類,需要實現以下幾種操作:賦值,operator=()
方法;「小於」,operator<()
方法;「等於」比較,operator==()
方法。
下面通過**熟悉一下c++的向量和迭代器的使用:
#include
#include
#include
#include //演算法標頭檔案
int main(int argc, char** argv)
std::cout
<< std::endl << std::endl;
std::vector
intvector; //建立乙個整形向量
intvector.push_back(2);
intvector.push_back(3);
for( int i = 0; i < intvector.size(); i++)
intvector[0] = 7; //把一些元素放到乙個向量裡以後,就可以用賦值操作符來改變它們的值了
std::cout
<< intvector[0] << std::endl;
std::cout
<< "please enter or retuen to continue.";
std::cin.get();
return
0;}
執行結果為:
hello
jessica
little
seven
xiuxiu23
7please enter or retuen to
continue.
c++入門(18):模板 python迭代器入門
迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可以使用 hasattr 判斷物件是否是 可迭代的 hasattr str iter true使用內建函式 iter 定義迭代器物件。lst 1 2,3 4 iter ls...
C 入門 迭代器及型別推導
迭代器 迭代器 iterator 是 c 程式中常用的一種設計模式,它最重要的作用是為訪問容器提供了統一的介面。c stl 有許多容器,例如 vector list deque map unordered map 而我們常常對不同的容器有相同的操作,比如在容器中查詢乙個元素 找出滿足條件的所有元素並...
C 字串 向量和陣列3 迭代器
我們已經知道可以使用下標運算子來訪問string物件的字元或者vector物件的元素,還有另外一種方法也可以實現同樣的目的,那就是迭代器。和指標類似,迭代器提供了對物件的間接訪問,其物件是容器中的元素。auto b v.begin e v.end begin成員負責返回指向第乙個元素的迭代器,end...