gpt4 book ai didi

C++ 不同的变量初始化

转载 作者:行者123 更新时间:2023-12-01 21:25:56 25 4
gpt4 key购买 nike

那么 int a = 10;int a(10); 之间的主要区别是什么?是否存在一些性能变化或类似的情况?

最佳答案

我很确定这有骗局,但我现在找不到,所以这里有一个答案:


so what are the major differences between int a = 10; and int a(10); ?

第一个是复制初始化,第二个是直接初始化。它们都会产生一个值为 10 的 int。

Are there some performances variations, or anything like this ?

对于像 int 这样的原语:不。对于类/结构可能有。复制初始化将调用类的复制构造函数,这可能会做一些工作。例如,std::vector 的复制构造函数将复制 vector 的每个元素,这可能会变得昂贵

std::vector<int> a{ 1, 2, 3 };
std::vector<int> b = a;

std::cout << a.size() << "/" << b.size(); // will print 3/3

在某些情况下会发生复制省略,因此

std::vector<int> c = std::vector<int>();

不会调用复制构造函数。

有关初始化的(更多)更多信息,请参阅 here .

关于C++ 不同的变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59523204/

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