![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++11及以上
流年剑客
这个作者很懒,什么都没留下…
展开
-
C++: vector iterator not incrementable,迭代器失效问题
导致此问题的其中一个原因:在进行迭代器遍历容器时,原来的容器不应该再继续压入任何元素了,否则迭代器可能失效。下面我们来以vector为例讨论一下迭代器失效背后的原理,以及什么时候会失效,什么时候正常。先上结论:vector的迭代器失效的原因是,vector进行了改变容量大小(注意是capacity而非size)的操作,这个时候,会重新申请内存空间,并将原来的元素进行拷贝,这个时候指向原来位置的iterator仍旧指向原来的位置,而这时原来的位置的元素早已在vector扩容操作里被删除了,故此时itera原创 2021-08-18 11:27:30 · 1119 阅读 · 0 评论 -
随机数引擎
随机数引擎的基本使用包含头文件#include <random>在使用处的外面初始化随机数引擎,注意:随机数引擎初始化很耗费资源,应该尽量避免多次初始化,在“外面”初始化一次即可反复使用。注意,要给引擎对象种一个种子,最常用的是ctime库中的time(0),这样才能真正实现获得随机序列 std::default_random_engine e(time(0)); std::uniform_int_distribution<unsigned> u(0, 1原创 2021-07-07 21:14:01 · 137 阅读 · 0 评论