ant*_*_rh 3 c++ in-class-initialization braced-init-list
struct Uct
{
std::vector<int> vec{10};
};
Run Code Online (Sandbox Code Playgroud)
上面的代码创建了包含值为 10 的单个元素的向量。但我需要用大小 10 来初始化该向量。像这样:
std::vector<int> vec(10);
Run Code Online (Sandbox Code Playgroud)
如何通过类内初始化来做到这一点?
小智 5
我认为有两个答案:
std::vector<int> vec = std::vector<int>(10);
Run Code Online (Sandbox Code Playgroud)
正如评论中所说:
std::vector<int> vec{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
Run Code Online (Sandbox Code Playgroud)
这是不太可取的,因为它的可读性较差,以后更难调整,但我认为它更快(在 c++17 之前),因为它不会调用注释中所述的移动构造函数。
话虽如此Uct(): vec(10){};,这也是具有相同属性的完全可行的选择(我认为)。
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |