您可以在以下内容中创建包含数组的C++结构:
struct foo{
int bar[42];
};
Run Code Online (Sandbox Code Playgroud)
我想做的是:
struct foo{
std::vector<int> bar(42);
};
Run Code Online (Sandbox Code Playgroud)
当然这不会编译,但你得到了意图.我知道.reserve()之类的东西,但我希望在声明一个时已经分配了空间foo.
原因是我应该改变一个相当复杂的Perl脚本,该脚本在结构体内生成带有数组的C代码.这些数组应该用std::vectors 代替.该脚本随后根据XML文件初始化数组,我宁愿不在push_back脚本中乱码,因为结构是深层嵌套的(数组的结构和结构数组).阵列的大小当然会有所不同.
谢谢你的建议.
使用构造函数:
struct foo{
std::vector<int> bar;
foo() : bar(32) {}
};
Run Code Online (Sandbox Code Playgroud)
创建实例时,将自动分配向量的内存.初始化列表在构造函数体执行之前初始化成员.
| 归档时间: |
|
| 查看次数: |
3358 次 |
| 最近记录: |