vector:动态数组 顺序表,物理位置连续,可以被排序,支持随机的存取 在末端进行插入删除效率高,中部和前部插入删除效率低 ,数组大小可变 #include #include using namespace std; int main() { vector v;//通过类模板来生成模板类 vector v1(v);//拷贝构造vector,要求数据类型相同for (int i = 0; i < 10;...
size返回实际元素个数,capacity返回vector能容纳的元素最大数量。如果插入元素时,元素个数超过capacity,需要重新配置内部存储器。西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China STL容器 vector构造、拷贝和析构 操作vector<T>c效果产生空的vector vector<T>c1(c2...
list有一个重要性质:插入操作(insert)和合并操作(splice)都不会造成原有的list迭代器失效。这在vector是不成立的,因为vector的插入操作可能造成记忆体重新配置,导致原有的迭代器全部失效。甚至list的元素删除操作(erase)也只有“指向被删除元素”的那个迭代器失效,其他迭代器不受任何影响。 2.链表类模板std::list成员...
..._size); } list(const list& lt) { //得有一个哨兵位 empty_initialize(); list tmp(lt.begin...因为list的底层结构为带头结点的双向循环链表,因此在list中进行插入时是不会导致list的迭代器失效的,只有在删除时才会失效,并且失效的只是指向被删除节点的迭代器,其他迭代器不会受到影响。
因为ConcurrentHashMap使用了分段锁,并不对整个数据进行锁定。 5、初始容量大小和每次扩充容量大小不同 6、计算hash值的方法不同 13、 Collection包结构,与Collections的区别 Collection是集合类的上级接口,子接口有 Set、List、LinkedList、ArrayList、Vector、Stack、Set; Collections是集合类的一个帮助类, 它包含有各种...
Q8:foreach遍历时是否可以添加或删除元素 foreach的底层是迭代器Iterator实现的,如果进行添加或删除元素会产生Fast-fail问题,抛出ConcurrentModificationException异常,因为增删会影响modCount的值,当modCount与预期的exceptedModCount不一致时,会抛错 Q9:Queue接口中的add()/offer()、remove()/poll()、element()/peek(...
vector不支持前端操作(push_front() pop_front()) 7.修改容器时,会使容器上的迭代器失效。vector和deque连续存储,在中间插入删 除元素时,会重组织存储。 8.string类型不支持以栈方式操纵容器;string支持的其他操作:substr append replace find rfind find_frist_of compare 。 第10章关联容器 1.标准库提供的关联...
遍历且插入的时候不能用vector<int>::iterator,否则可能因为vector重新allocate内存而地址失效,所以直接使用数组下标。 STL 中的vector 以及其他容器 都是 非线程安全的,使用 iterator 迭代器 ,和 插入元素 不进行 加锁控制,会导致严重的问题。 vector 的insert 是返回插入的地址 容器元素是拷贝,即非引用参数。 标准...
c.erase(begin,end) 删除 begin,end 区间的数据,返回指向下一个数据位置的指针(迭代器)c.clear();清除所有数据c.rbegin();将vector 反转后的开始指针返回(其实就是原来的 end-1)c.rend();将vector 反转后的结束指针返回(其实就是原来的 begin-1)c.empty();...
如果不重写hashCode()方法,可能会导致哈希表等数据结构无法正常工作,例如当我们把对象添加到HashSet集合中时,可能会出现不正确的结果,即HashSet中可能会出现相等的对象。另外,根据Java规范,在重写equals()方法时,必须满足以下要求:自反性:对于任何非空引用x,x.equals(x)必须返回true。对称性:对于任何非空引用x和y,...