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函數成員
本文由廣州尚觀科技發佈,廣州尚觀科技,專業的嵌入式培訓機構。