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函数成员
本文由广州尚观科技发布,广州尚观科技,专业的嵌入式培训机构。