【发布时间】:2019-11-16 12:43:29
【问题描述】:
使用此代码,我收到错误消息 C26444:避免使用自定义构造和销毁 (es.84) 的未命名对象。 我搜索了这个,但找不到适合我的案例的任何正确答案。 提前致谢。
#include <iostream>
#include <vector>
vector<vector<int>> create2dVector(const size_t size1, const size_t size2, const int value) noexcept {
vector<vector<int>> v(size1, vector<int> (size2));
for (size_t i = 0; i < size1; i++) {
for (size_t j = 0; j < size2; j++) {
v[i][j] = value;
}
}
return v;
}
int main() {
create2dVector(2, 5, 10);
return 0;
}
【问题讨论】:
-
你用的是什么编译器?我用
g++ 7.4.0编译了你的代码,没问题 -
@eMKa 写 auto v = create2dVector(2, 5, 10);
-
为什么是下标而不是迭代器。 ?
-
C++ 中没有所谓的“向量”。也许您打算写
std::vector,而不是?
标签: c++ vector 2d 2d-vector error-messaging