举一个begin函数的C++代码例子
时间: 2024-03-26 15:39:16 浏览: 22
当我们使用STL容器vector时,可以使用begin函数获取该vector的第一个元素的迭代器,如下所示:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = vec.begin(); // 获取vec的第一个元素的迭代器
std::cout << *it << std::endl; // 输出1
return 0;
}
```
在上面的例子中,我们创建了一个vector容器,并用1、2、3、4、5初始化了它。然后,我们使用begin函数获取vec的第一个元素的迭代器,并将该迭代器赋值给变量it。最后,我们输出it所指向的元素值,即1。
相关问题
请用C++代码实现一个谓词函数
下面是一个简单的 C++ 谓词函数的例子,它判断一个整数是否为偶数:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
bool isEven(int n) {
return n % 2 == 0;
}
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 使用 std::count_if 算法函数和谓词函数 isEven 统计偶数个数
int count = std::count_if(nums.begin(), nums.end(), isEven);
std::cout << "There are " << count << " even numbers." << std::endl;
return 0;
}
```
在上面的代码中,isEven 函数是一个谓词函数,它接受一个整数参数 n,返回一个布尔值,表示 n 是否为偶数。在主函数中,使用 std::count_if 算法函数和谓词函数 isEven 统计 nums 容器中偶数的个数,并输出结果。
请举一个例子说明C++ list容器使用erase函数的方法
当使用C++中的list容器时,可以使用erase函数来删除容器中的元素。erase函数有两种用法:
1. 删除单个元素
可以使用erase函数删除list容器中的单个元素,例如:
```c++
list<int> mylist = {1, 2, 3, 4, 5};
auto it = mylist.begin();
advance(it, 2); // it指向第3个元素,即3
mylist.erase(it); // 删除第3个元素
```
在上面的代码中,我们首先创建了一个包含5个整数的list容器mylist,然后使用advance函数将迭代器it指向第3个元素,最后使用erase函数删除了第3个元素。
2. 删除一段元素
除了删除单个元素外,还可以使用erase函数删除list容器中的一段元素,例如:
```c++
list<int> mylist = {1, 2, 3, 4, 5};
auto it1 = mylist.begin();
auto it2 = mylist.begin();
advance(it1, 1); // it1指向第2个元素,即2
advance(it2, 4); // it2指向第5个元素,即5
mylist.erase(it1, it2); // 删除第2个到第5个元素
```
在上面的代码中,我们首先创建了一个包含5个整数的list容器mylist,然后使用advance函数将迭代器it1指向第2个元素,将迭代器it2指向第5个元素,最后使用erase函数删除了第2个到第5个元素。
注意:在使用erase函数删除元素时,要注意迭代器的有效性,避免出现迭代器失效的情况。