相关疑难解决方法(0)

复制初始化和直接初始化之间有区别吗?

假设我有这个功能:

void my_test()
{
    A a1 = A_factory_func();
    A a2(A_factory_func());

    double b1 = 0.5;
    double b2(0.5);

    A c1;
    A c2 = A();
    A c3(A());
}
Run Code Online (Sandbox Code Playgroud)

在每个分组中,这些陈述是否相同?或者在某些初始化中是否有额外的(可能是可优化的)副本?

我见过有人说过这两件事.请引用文字作为证据.还请添加其他案例.

c++ initialization

230
推荐指数
5
解决办法
5万
查看次数

C++构造函数语法

简单问题:以下陈述是否相同?或者是第二个在幕后做更隐含的事情(如果是这样的话,是什么?)

myClass x(3);
myClass x = myClass(3);
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ constructor

12
推荐指数
3
解决办法
6372
查看次数

哪个更有效/更整洁:清除现有的字符串流还是创建新的字符串流?

出于好奇心的简单问题.

类上的多个方法需要使用字符串流,或者特别是ostringstream.

1)将一个stringstream变量作为类成员,然后在使用它之前清除它,即msg.str("")

2)每次需要使用时,在每个方法中本地创建一个新的stringstream变量.

在效率和整洁方面,哪种方法最好?

我的预感是选项1,但不确定初始构造是否与每次调用str()相结合会更糟?

PS我读过初始化..哪一个效率更高?这是更快/更有效?,我的下一步将是让我研究分析和编写一个小测试应用程序,但我觉得要求可能更快:-)

c++ performance stringstream

5
推荐指数
1
解决办法
532
查看次数