14 list與vector

c++裏有提供標準的模板庫(STL)


1. list 其實就是把鏈表封裝起來的類模板,每個節點裝載的數據類型是不指定的,在創建對象時指定具體的數據類型


如聲明一個裝int數據的鏈表: list<int> mylist;

mylist.push_back(88);//尾部加入

mylist.push_front(99);//頭部加入


遍歷鏈表時,先聲明一個指向鏈表節點的指針:list<int>::iterator it;

for (it =mylist.begin(); it != mylist.end(); it++)

{

// (*it)可得到當初push_back/front時的數據,如果當時是給地址,那*it也是得到地址

}



裝載自定義類型的鏈表:


class Student {

private:

string name;

int id;

public:

Student(stringname, int id) {

this->name =name;

this->id = id;

}

void show() {

cout << name<< " " << id << endl;

}

};



int main(void)

{

list<Student *>mylist;

Student *tmp;

string name;

int id;


while (1)

{

cin >> id;

if (id <= 0)

break;

cin >> name;


tmp = newStudent(name, id);

mylist.push_front(tmp);

}


list<Student*>::iterator it;

for (it =mylist.begin(); it != mylist.end(); it++)

{

tmp = *it;

tmp->show();

delete tmp;

}

return 0;

}



2. vector是封裝動態數組的類模板用法與lit可以使用同一種用法.

只要把前面的代碼裏的list換成vector即可。

vector是沒有push_front成員函數,可以用push_back函數成員


本文由廣州尚觀科技發佈,廣州尚觀科技,專業的嵌入式培訓機構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章