Vector:
缺点:
1.中间插入数据会导致数据大量移动,降低效率;
2.当动态添加的数据超过vector默认分配的大小时要进行整体的重新分配、拷贝与释放;
优点:
1.相当于一个自动扩容的数组;
2.节省空间;
Deque:
缺点:
1.中间插入数据会导致数据大量移动,降低效率 ;
优点:
1.相比vector而言可以在头部进行元素的增加和删除;
List:
缺点:
1.不能随机选取内部数据,只能一个一个访问;
优点:
1.可以快速在任意部位增加和删除元素,效率高;
! !
1.删除数据时注意迭代器会自动指向下一个数据,因此将iterator++放在非erase()函数执行时,即
else{iterator++};
2.emplace_back 相当于 push_back 但不会调用拷贝构造函数,提高运行效率;
3.emplace 相当于 insert 提高运行效率;
Set:(包含functional.h)
插入数据:set.insert()
缺点:
1.不能指定位置插入数据;
2.相同数据仅允许存在一个;
优点:
1.查找数据的速度极快;
multiset:
优点:
1.相比较于set允许插入相同数据;
仿函数:
定义:在自定义类内重载()运算符,从而使类对象可以像函数一样调用
map:
缺点:
1.不能指定插入数据;
插入数据的方式:
queue:
priority_queue(优先级队列):
stack:
! !
1.后进先出;
2.不能使用迭代器;