C++: 无法将std::vector<double>类型的元素添加到std::vector<std::vector<double>>中去
时间: 2023-08-08 21:05:56 浏览: 96
这个问题可以通过在内部向量上使用push_back()函数来解决。例如,假设我们有一个名为outerVec的std::vector<std::vector<double>>,我们想将一个名为innerVec的std::vector<double>添加到outerVec中:
```c++
std::vector<double> innerVec = {1.0, 2.0, 3.0};
std::vector<std::vector<double>> outerVec;
outerVec.push_back(innerVec);
```
在这个例子中,我们首先创建一个名为innerVec的std::vector<double>,并将其初始化为{1.0, 2.0, 3.0}。接下来,我们使用outerVec的push_back()函数将innerVec添加到outerVec中。这将创建一个新的std::vector<double>,并将其添加到outerVec的末尾。
请注意,当我们将innerVec添加到outerVec中时,它的值被复制到outerVec中的新向量中。这意味着如果我们稍后修改innerVec的值,它不会影响outerVec中的值。如果我们想要在outerVec中添加innerVec的引用,我们可以使用std::reference_wrapper,如下所示:
```c++
std::vector<double> innerVec = {1.0, 2.0, 3.0};
std::vector<std::reference_wrapper<std::vector<double>>> outerVec;
outerVec.push_back(std::ref(innerVec));
```
在这个例子中,我们首先创建一个名为innerVec的std::vector<double>,并将其初始化为{1.0, 2.0, 3.0}。接下来,我们创建一个std::vector<std::reference_wrapper<std::vector<double>>>,并使用std::ref()函数将innerVec添加到outerVec中。这将创建一个std::reference_wrapper<std::vector<double>>,该引用包装器允许我们在outerVec中添加对innerVec的引用。这意味着如果我们稍后修改innerVec的值,它将影响outerVec中的值。
阅读全文