- 主题:今天被C++的stl vector 自动扩大空间坑了
这不是坑,这是没学好
【 在 thinkgrass (虎儿) 的大作中提到: 】
: class Item
: {
: public:
: ...................
--
FROM 61.148.16.*
要求太高。。。。我用了这么久都没留意。。。。
【 在 jimmycmh 的大作中提到: 】
:
: 这不是坑,这是没学好
:
: --
发自「今日水木 on Mi Note 3」
--
FROM 101.199.100.*
还好,是必崩的,容易发现。
--
FROM 125.35.124.*
不好意思,现在c++已经很少用new了,除非你真的被逼上绝路,比如manager说你不用new就把你裁了,这种情况下再想办法小心点用
【 在 thinkgrass 的大作中提到: 】
: class Item
: {
: public:
: ...................
--
FROM 49.184.35.*
【 在 thinkgrass 的大作中提到: 】
: class Item
: {
: public:
: ...................
是呀,楼上的朋友们说的都对,这样写太吓人了
{
Item a(0);
Item b = a;
}
你这个类只要无意中一拷贝,就是双重析构啊
--
FROM 211.249.40.*
至少要把书读好,更何况还想自己封对象。
【 在 thinkgrass 的大作中提到: 】
:
: class Item
: {
: public:
: int * p_data;
--
FROM 124.64.19.*
话说cpp11之前不提供emplace,你用pushback很多时候大概就崩了
你的这个类本身也特别容易误用,你是怎么小心翼翼地让它崩在vector里面的…
或者你不小心里面加了个move only的member都能阻止vector使用copy扩容吧
等一下,话说这个vector居然没有自动选择用move ctor扩容?
【 在 thinkgrass 的大作中提到: 】
: class Item
: {
: public:
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 75.31.75.*
自己回复: 如果move ctor是noexcept的,vector grow的时候也会用move ctor而不会触发crash
【 在 lambdai 的大作中提到: 】
: 话说cpp11之前不提供emplace,你用pushback很多时候大概就崩了
:
: 你的这个类本身也特别容易误用,你是怎么小心翼翼地让它崩在vector里面的…
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 172.58.38.*
有dtor就没有implicit move ctor了。
【 在 lambdai 的大作中提到: 】
: 话说cpp11之前不提供emplace,你用pushback很多时候大概就崩了
: 你的这个类本身也特别容易误用,你是怎么小心翼翼地让它崩在vector里面的…
: 或者你不小心里面加了个move only的member都能阻止vector使用copy扩容吧
: ...................
--
FROM 58.37.61.*
养成良好习惯,用container之前先去参考网站读规则
container里用裸指针,都要三思而后行
【 在 thinkgrass 的大作中提到: 】
: class Item
: {
: public:
: ...................
--
FROM 122.224.174.*