gpt4 book ai didi

c++ - std::vector 构造函数是否不为每个元素调用对象构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:16 25 4
gpt4 key购买 nike

我的代码类似于这些内容。

class A
{
public:
A(int i) { printf("hello %d\n", i); }
~A() { printf("Goodbye\n"); }
}


std::vector(10, A(10));

我注意到 hello 打印了一次。好像是在暗示vector只为元素分配空间但不构建它。如何让它构造 10 个 A 对象?

最佳答案

当您将对象传递给 std::vector 时,该对象仅构造一次。然后这个对象被复制了 10 次。您必须在复制构造函数中执行 printf 才能看到它。

关于c++ - std::vector 构造函数是否不为每个元素调用对象构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com