c++ - 具有大小的 vector 的类内初始化

标签 c++ in-class-initialization braced-init-list

<分区>

struct Uct
{
    std::vector<int> vec{10};
};

上面的代码创建了包含值为 10 的单个元素的 vector 。但是我需要用大小 10 来初始化 vector 。就像这样:

std::vector<int> vec(10);

我如何使用类内初始化来做到这一点?

最佳答案

我认为有 2 个答案:

std::vector<int> vec = std::vector<int>(10);

正如评论中所说:

std::vector<int> vec{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

这是不太可取的,因为它的可读性较差并且以后更难调整,但我认为它更快(在 c++17 之前),因为它不会像评论中所说的那样调用移动构造函数。

话虽如此,Uct(): vec(10){}; 也是具有相同属性的完全可行的选项(我认为)。

关于c++ - 具有大小的 vector 的类内初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70529499/

相关文章:

c++ - iTunes COM 接口(interface) - 无法将歌曲添加到资料库

C++ 创建一个头文件来解决循环依赖是个好主意吗?

c# - 为什么 Java/C# 将 C++ 作为在 SO 上学习 OOP 的推荐语言?

swift - 在 Swift 中初始化类属性

c++ - 非默认构造函数类型的继承构造函数 + 类内初始化失败

c++ - msys/MinGW,即使安装了也找不到libpng,尝试编译xpdf(特别是pdftopng)

C++初始化类成员变量依赖于其他成员变量

c++ - 错误: "couldn' t infer template argument '_Tp' "when passing in {} into

c++ - 递归嵌套初始值设定项列表采用变体

arrays - 将数组分配给C中的int