摘要: 一、vector 概述 vector 的数据安排以及操作方式,与 array 非常相似。两者的唯一差别在于空间的运用的灵活性。array 是静态空间,一旦配置了就不能改变。 vector 是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此, vector 的运用对于内存的合理利 阅读全文
posted @ 2021-04-06 16:35 fengMisaka 阅读(708) 评论(0) 推荐(0) 编辑
摘要: 迭代器的失效问题:对容器的操作影响了元素的存放位置,称为迭代器失效。 失效情况: 当容器调用erase()方法后,当前位置到容器末尾元素的所有迭代器全部失效。 当容器调用insert()方法后,当前位置到容器末尾元素的所有迭代器全部失效。 如果容器扩容,在其他地方重新又开辟了一块内存。原来容器底层的 阅读全文
posted @ 2021-04-06 14:39 fengMisaka 阅读(12235) 评论(2) 推荐(4) 编辑
摘要: 一、什么是死锁? 如果你将某个mutex上锁了,却一直不释放,另一个线程访问该锁保护的资源的时候,就会发生死锁,这种情况下使用lock_guard可以保证析构的时候能够释放锁,然而,当一个操作需要使用两个互斥元的时候,仅仅使用lock_guard并不能保证不会发生死锁,如下面的例子(双线程多锁申请) 阅读全文
posted @ 2021-04-06 11:19 fengMisaka 阅读(2355) 评论(0) 推荐(0) 编辑