小编av4*_*625的帖子

使用 std::string 进行大括号初始化

我最近越来越多地使用大括号初始化。尽管我发现在这种情况下圆括号初始化存在差异,但我想知道为什么。

如果我做:

const std::string s(5, '=');
std::cout << s << std::endl;
Run Code Online (Sandbox Code Playgroud)

我得到:

=====
Run Code Online (Sandbox Code Playgroud)

这就是我所期望的。但如果我这样做:

=====
Run Code Online (Sandbox Code Playgroud)

我得到:

=
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

编辑:为了任何看到此内容的人的利益。=第二个输出中的之前有一个不可打印的字符。它只是没有显示在 stackoverflow 上。好像:

在此输入图像描述

c++ stdstring curly-braces

4
推荐指数
1
解决办法
182
查看次数

标签 统计

c++ ×1

curly-braces ×1

stdstring ×1