cpp vector<int>的end()
时间: 2023-09-23 12:03:41 浏览: 77
`end()` 是 C++ 容器(如`vector`)的成员函数之一,用于返回指向容器尾部下一个位置(即越界位置)的迭代器。
对于`vector<int>`类型的容器,`end()`函数返回的是一个指向容器中最后一个元素的下一个位置的迭代器。这个迭代器可以用来遍历整个容器,一般用于在循环中判断是否到达了容器的尾部。
以下是一个使用 `end()` 函数来遍历 `vector<int>` 容器的示例代码:
```cpp
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
// 遍历 vector<int> 容器
for (auto it = vec.begin(); it != vec.end(); ++it)
{
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的示例代码中,我们使用`begin()`函数获取指向容器头部的迭代器,使用`end()`函数获取指向容器尾部下一个位置的迭代器。在循环中,我们使用迭代器遍历整个容器,并使用`*`操作符获取当前迭代器指向的元素的值,并输出到控制台上。
相关问题
Cpp调用sort对vector<vector<int>>对象排序可以吗
可以的,可以使用lambda表达式来自定义排序规则。例如:
```cpp
vector<vector<int>> vec;
// 填充vec
sort(vec.begin(), vec.end(), [](const vector<int>& a, const vector<int>& b) {
return a[0] < b[0]; // 按照第一列排序
});
```
vector<vector<int> >& startEnd 按第一列排序
要按照二维向量 `startEnd` 的第一列进行排序,可以使用 `std::sort` 函数结合自定义的比较函数来实现。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
bool compare(const std::vector<int>& a, const std::vector<int>& b) {
return a[0] < b[0];
}
int main() {
std::vector<std::vector<int>> startEnd = {{3, 4}, {1, 2}, {2, 3}, {4, 5}};
// 按第一列排序
std::sort(startEnd.begin(), startEnd.end(), compare);
// 输出排序后的结果
for (const auto& vec : startEnd) {
std::cout << vec[0] << " " << vec[1] << std::endl;
}
return 0;
}
```
运行以上代码,输出结果为:
```
1 2
2 3
3 4
4 5
```
阅读全文