list的构造与内存管理

    xiaoxiao2021-12-14  18

    list双向链表的constructor、push_back、insert

    先帖代码

    /****************************************************************** ** 文件名:ListContent ** ** 创建人:孤舟雪未央 ** 日 期:2016-12-3 ** 修改人:孤舟雪未央 ** 日 期:2016-12-3 ** 描 述:list的构造与内存管理 ** 版 本:1.0 ******************************************************************/ #include <iostream> #include <list> using namespace std; int main() { list<int> my_list; //输出list的大小 cout<< "size = "<< my_list.size() << endl; //往list中添加数据 my_list.push_back(2); my_list.push_back(3); my_list.push_back(4); my_list.push_back(5); my_list.push_back(6); //再次查看list的大小 cout<< "size = "<< my_list.size()<< endl; //输出list的元素 list<int>::iterator iter; for(iter = my_list.begin();iter != my_list.end(); ++iter) cout<< *iter << " "; cout<< endl; //查找list中的3元素 iter = find(my_list.begin(), my_list.end(), 3); if(iter != my_list.end()) my_list.insert(iter, 99); cout<< "size = "<< my_list.size()<< endl; cout<< *iter<< endl; //输出所有元素 for(iter = my_list.begin(); iter != my_list.end(); ++iter) cout<< *iter << " "; cout<< endl; //查找5元素 iter = find(my_list.begin(), my_list.end(), 5); if(iter != my_list.end()) cout<< *(my_list.erase(iter))<< endl; //输出所有元素 for(iter = my_list.begin(); iter != my_list.end(); ++iter) cout<< *iter << " "; cout<< endl; return 0; } list<int> my_list;此处list使用缺省的alloc作为空间配置器,为每一个节点配置空间。

    my_list.push_back(2);push_back(2)将int型的2插入到双向链表的末尾,内部调用insert函数—— iterator insert(iterator position,const  T&x)。

    iter = find(my_list.begin(), my_list.end(), 3); find函数在上一篇博客有详细的讲解,insert函数插入的元素是插入到元素之前的,

    例如:

    my_list.insert(iter, 99); 是将99插入到iter当前所指位置之前的,而不是在其之后。

    转载请注明原文地址: https://ju.6miu.com/read-969936.html

    最新回复(0)