如何获取 std::vector<float> 中的元素
时间: 2024-01-21 08:04:55 浏览: 23
可以使用迭代器或下标来获取 `std::vector<float>` 中的元素。
1. 使用迭代器:
```c++
std::vector<float> vec{1.0, 2.0, 3.0};
for (auto it = vec.begin(); it != vec.end(); ++it) {
float element = *it;
// 处理 element
}
```
2. 使用下标:
```c++
std::vector<float> vec{1.0, 2.0, 3.0};
for (std::size_t i = 0; i < vec.size(); ++i) {
float element = vec[i];
// 处理 element
}
```
注意,在使用下标时,要确保下标不越界,否则会导致程序崩溃。可以使用 `std::vector::at()` 函数来进行下标访问,它会检查下标是否越界并抛出异常。例如:
```c++
std::vector<float> vec{1.0, 2.0, 3.0};
try {
float element = vec.at(3); // 越界,抛出 std::out_of_range 异常
} catch (const std::out_of_range& ex) {
std::cerr << ex.what() << '\n';
}
```
相关问题
std::vector<std::vector<float>>
std::vector<std::vector<float>> 是一个二维的 vector 容器,它可以存储多个一维的 std::vector<float> 对象。每个一维的 std::vector<float> 对象都可以存储一组 float 类型的值。
要初始化和定义一个 std::vector<std::vector<float>> 对象,你可以按照以下步骤进行操作:
1. 首先,定义一个二维的 std::vector<std::vector<float>> 对象,可以使用空的大括号进行初始化:
std::vector<std::vector<float>> myVector{};
2. 然后,为每个一维的 std::vector<float> 对象添加元素。你可以使用 push_back() 函数将一维的 std::vector<float> 对象添加到二维容器中:
myVector.push_back(std::vector<float>{1.0, 2.0, 3.0});
myVector.push_back(std::vector<float>{4.0, 5.0, 6.0});
3. 这样,你就创建了一个包含两个一维 std::vector<float> 对象的 std::vector<std::vector<float>>。
总结起来,要初始化和定义一个 std::vector<std::vector<float>> 对象,你可以使用空的大括号初始化,并逐个添加一维的 std::vector<float> 对象到二维容器中。
怎么提取std::vector<float>创建的数组中的元素
`std::vector` 是一个动态数组,可以通过迭代器或下标来访问其中的元素。
1. 使用迭代器:
```c++
std::vector<float> vec{1.0, 2.0, 3.0};
for (auto it = vec.begin(); it != vec.end(); ++it) {
float element = *it;
// 处理 element
}
```
2. 使用下标:
```c++
std::vector<float> vec{1.0, 2.0, 3.0};
for (std::size_t i = 0; i < vec.size(); ++i) {
float element = vec[i];
// 处理 element
}
```
注意,在使用下标时,要确保下标不越界,否则会导致程序崩溃。可以使用 `std::vector::at()` 函数来进行下标访问,它会检查下标是否越界并抛出异常。例如:
```c++
std::vector<float> vec{1.0, 2.0, 3.0};
try {
float element = vec.at(3); // 越界,抛出 std::out_of_range 异常
} catch (const std::out_of_range& ex) {
std::cerr << ex.what() << '\n';
}
```