c++ - C++ 通过 1d 向量的函数初始化 2d 向量
问题描述
这就是我所拥有的:
vector<int> A {5,4,3,1};
vector<int> B {3,1};
我想将 2d 向量 C 制作为 5*5 2d 向量,填充为 0.0,所以我尝试了这个:
vector<vector<double>> C((A.size() + 1), vector<double>((B.begin() + 2),0.0));
但这是我遇到的错误。
There is no instance of a constructor with a matching C++ argument list.
(std::_Vector_iterator<std::_Vector_val<std::conditional_t<true, std::_Simple_types<int>, std::_Vec_iter_types<int, size_t, ptrdiff_t, int *, const int *, int &, const int &>>>>, double)
我无法理解错误的内容。请问有什么问题以及如何解决?
解决方案
vector<vector<double>> C((A.size() + 1), vector<double>((B.begin() + 2),0.0));
在这里,您正在调用 std::vector 的构造函数(cppreference上的第 3 个):
constexpr vector( size_type count,
const T& value,
const Allocator& alloc = Allocator());
你可以看到它需要大小和价值。在嵌套向量而不是传递大小中,您将迭代器传递给开头并将其递增 2。我认为你想要的是B.size()
而不是B.begin()
. 此外,如果它必须是 5 x 5,您可以简单地执行以下操作:
std::vector<std::vector<double>> C(5, std::vector<double>(5, 0.0));
推荐阅读
- javascript - react-native: 通过 npm 安装后无法导入 react-native
- python - 如何让 django 提供非静态 js 文件?
- hive - 查询具有大量列的 Hive 表时,是否可以减少 MetaStore 检查的数量?
- graphql - 如何使用 react-hooks 在一个地方处理 apollo 错误?
- javascript - 反应,从另一个组件读取 const
- java - 如何将仅存在于内存中的对象文件存储为存储系统内部的文件?
- python - vtkWindowToImageFilter 的速度太慢,如何加快速度?
- jupyter-notebook - 在 JupyterLab 中展开代码片段的键盘快捷键
- r - 将R中一列的所有整数相除
- api - 如何使用 Dart 从这个 GraphQL API 获取和使用我需要的属性?