C++ 怎么把多个const double数组保存到一个std::vector<const double>数组里
时间: 2024-01-20 15:04:13 浏览: 63
你可以使用 `std::vector<const double*>` 来保存多个 `const double` 数组的指针。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
const double arr1[] = {1.1, 2.2, 3.3};
const double arr2[] = {4.4, 5.5, 6.6};
std::vector<const double*> vec;
vec.push_back(arr1);
vec.push_back(arr2);
for (const double* arr : vec) {
for (int i = 0; i < 3; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
return 0;
}
```
在上面的示例中,我们定义了两个 `const double` 数组 `arr1` 和 `arr2`,然后将它们的指针添加到 `std::vector<const double*>` 中。注意,我们使用了指针类型 `const double*` 而不是直接使用 `const double`,因为向量中存储的是指针而不是值本身。
然后,我们可以通过遍历向量和数组来访问存储在向量中的多个数组的元素。
相关问题
C++ 怎么把多个const double数组保存到一个std::vector数组里
你可以使用`std::vector<std::array<const double, N>>`来保存多个`const double`数组到一个`std::vector`中,其中`N`是每个数组的大小。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <array>
int main() {
const double arr1[] = {1.0, 2.0, 3.0};
const double arr2[] = {4.0, 5.0, 6.0};
const double arr3[] = {7.0, 8.0, 9.0};
std::vector<std::array<const double, 3>> vec;
vec.push_back({arr1[0], arr1[1], arr1[2]});
vec.push_back({arr2[0], arr2[1], arr2[2]});
vec.push_back({arr3[0], arr3[1], arr3[2]});
// 访问 vector 中的元素
for (const auto& arr : vec) {
for (const auto& num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
}
return 0;
}
```
这段代码将三个`const double`数组存储在一个`std::vector<std::array<const double, 3>>`中,并通过嵌套的循环遍历访问每个数组的元素。
C++ std::vector<const double> campos怎么把数组保存进去
对于 `std::vector<const double>`,您无法直接将数组保存到其中,因为 const 限定符将阻止修改 vector 中的元素。您可以考虑将数组元素复制到 vector 中,或者使用指向 const double 的指针来构建 vector。下面是两种可能的方法:
方法一:复制数组元素到 vector 中:
```cpp
const double arr[] = {1.0, 2.0, 3.0, 4.0, 5.0}; // 示例数组
std::vector<const double> campos(arr, arr + sizeof(arr) / sizeof(arr[0]));
```
方法二:使用指向 const double 的指针构建 vector:
```cpp
const double* arr = new const double[5]{1.0, 2.0, 3.0, 4.0, 5.0}; // 示例数组
std::vector<const double> campos(arr, arr + 5);
delete[] arr; // 注意释放动态分配的内存
```
请根据您的具体需求选择适合的方法。
阅读全文