双向链表list
//list容器可以在任意位置插入、获取、移动元素,不能通过下标获取元素#include#include#include#include#includeusing namespace std;int main(){typedef list LISTINT;//别名LISTINT lis;//创建一个listsrand(unsigned int(time(N
·
//list容器可以在任意位置插入、获取、移动元素,不能通过下标获取元素
#include <iostream>
#include <ctime>
#include <vector>
#include <numeric>
#include <list>
using namespace std;
int main()
{
typedef list<int> LISTINT;//别名
LISTINT lis;//创建一个list
srand(unsigned int(time(NULL)));
for (int i = 0; i < 100; i++)
lis.push_front(rand()% 100);
/*INSTER*/
lis.emplace_front(123456);//放到最前边
lis.insert(lis.begin(), 10);//最前边添加一个10
lis.insert(lis.end(), 2, 11);//在尾部添加两个11
vector<int> vect(2,12);
lis.insert(lis.end(),vect.begin(),vect.end());//在尾部添加vect的从头到尾也就是两个12
//迭代器遍历
list<int>::iterator it = lis.begin();
while (it != lis.end())
{
printf("%d\n", *it++);
}
printf("总和:%d\n", accumulate(lis.begin(), lis.end(), 0));
printf("元素个数:%d\n", lis.size());
printf("最大存储元素量:%d\n", lis.max_size());
lis.clear();//清空list
/*
assign() 给list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge() 合并两个list
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
rbegin() 返回指向第一个元素的逆向迭代器
remove() 从list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice() 合并两个list
swap() 交换两个list
unique() 删除list中重复的元素
*/
system("pause");
}
更多推荐
已为社区贡献6条内容
所有评论(0)