这个东西到不难,有一些接口需要熟悉,暂时记录下。
代码
#include <list>
#include <iostream>
int main(){
std::list<int> mylist;
typedef std::list<int>::iterator iter;
iter it1;
iter it2;
for( int i = 1; i <= 3; ++i ){
mylist.push_back(i);
}
it1 = mylist.begin();
std::cout << *it1 << std::endl;
it2 = mylist.insert(it1, 10); // it1 still points to 1, it2 points to 10
std::cout << *it1 << std::endl;
std::cout << *it2 << std::endl;
iter it3 = mylist.erase(it1);
std::cout << *it1 << std::endl;
std::cout << *it3 << std::endl;
return 0;
}
1.插入元素后返回插入元素的迭代器。原迭代器未失效。
2.删除元素之后返回下一个元素的迭代器。迭代器失效。
/*************************************************************************
> File Name: main.cpp
> Author: Kang
> Mail:likang@tju.edu.cn
> Created Time: 2017年08月25日 星期五 17时53分12秒
************************************************************************/
#include <list>
#include <iostream>
int main(){
std::list<int> mylist;
typedef std::list<int>::iterator iter;
iter it1;
iter it2;
for( int i = 1; i <= 3; ++i ){
mylist.push_back(i);
}
it1 = mylist.begin();
it2 = it1;
it2++;
it2++;
std::cout << *it2 << std::endl;
mylist.splice( it1, mylist, it2 ); // 将mylist it2的内容插入到it1的位置
it1 = mylist.begin();
std::cout << *it1++ << std::endl;
std::cout << *it1++ << std::endl;
std::cout << *it1 << std::endl;
return 0;
}