c++adjacent_find()函数用法
在C++中,`std::adjacent_find()`函数用于查找范围中相邻元素的第一对。它的用法如下:
#include <iostream>
#include <array>
int main() {
// 创建一个包含5个整数的std::array
std::array<int, 5> arr = {1, 2, 3, 4, 5};
// 使用下标访问元素
std::cout << "Element at index 2: " << arr[2] << std::endl;
// 使用at()函数访问元素,提供了边界检查
std::cout << "Element at index 4: " << arr.at(4) << std::endl;
// 使用size()函数获取容器大小
std::cout << "Size of array: " << arr.size() << std::endl;
// 使用front()和back()函数访问首尾元素
std::cout << "First element: " << arr.front() << std::endl;
std::cout << "Last element: " << arr.back() << std::endl;
// 使用迭代器遍历容器
std::cout << "Elements in the array: ";
for (auto it = arr.begin(); it != arr.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 使用范围for循环遍历容器
std::cout << "Elements in the array (range-based for loop): ";
for (const auto& element : arr) {
std::cout << element << " ";
}
std::cout << std::endl;
// 使用fill()函数填充容器中的元素
arr.fill(0);
std::cout << "After filling with zeros: ";
for (const auto& element : arr) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
`adjacent_find()`函数有两个重载版本,一个是没有指定比较操作的版本,另一个是指定了自定义比较操作的版本。
**参数**:
- `first`和`last`:定义了要搜索的范围。`first`是要搜索的起始位置的迭代器,而`last`是要搜索的结束位置的迭代器(不包括在搜索范围内)。
- `p`(仅在第二个重载版本中):指定了自定义的二元谓词(二元函数或函数对象),用于比较相邻的元素。谓词应该接受两个参数,并返回一个`bool`值,指示两个元素是否相等。如果未提供此参数,则默认使用`operator==`进行比较。
**返回值**:
- 如果找到相邻元素,则返回指向第一个相邻元素的迭代器。
- 如果在搜索范围内没有找到相邻元素,则返回`last`。
下面是一个示例,演示如何使用`adjacent_find()`函数来查找相邻重复元素:
输出:
Element at index 2: 3
Element at index 4: 5
Size of array: 5
First element: 1
Last element: 5
Elements in the array: 1 2 3 4 5
Elements in the array (range-based for loop): 1 2 3 4 5
After filling with zeros: 0 0 0 0 0
在上面的示例中,`adjacent_find()`函数在`numbers`向量中搜索相邻重复的元素。它找到了第一个相邻的重复元素`3`,并返回指向它的迭代器。然后,我们使用`std::distance()`函数来计算迭代器的索引位置,并将结果打印出来。
注意,`adjacent_find()`函数只找到第一对相邻元素。如果要找到所有相邻重复的元素,可以使用循环来重复调用该函数。
猜你喜欢LIKE
相关推荐HOT
更多>>c语言void指针及使用注意事项
`void` 指针是一种特殊的指针类型,它可以保存任何类型的指针,并且可以通过类型转换将其转换为任何类型的指针。`void` 指针的用法如下:1. `vo...详情>>
2023-05-09 11:49:25c语言puts函数用法
puts函数用于将字符串输出到终端并自动换行。需要注意的是,puts函数只能输出字符串,不能输出数值类型的数据。如果想要输出数值类型数据,需要...详情>>
2023-05-09 11:41:57c语言printf函数和scanf函数
C语言中的printf函数和scanf函数分别用于输出和输入数据。下面分别介绍它们的用法。printf函数用于将数据输出到终端。其中,输出格式为一个字符...详情>>
2023-05-09 11:39:46c语言pow()函数:求x的y次方的值
C语言中的pow()函数用于求x的y次方的值,头文件为math.h,函数原型为:其中,x和y都为double类型。pow()函数返回的是x的y次方的值,即x^y。需要...详情>>
2023-05-09 11:35:11c语言const的用法,c语言常量定义
C语言中const关键字用于定义常量。常量是值不可改变的量,一旦定义就不能被修改,主要有以下两种写法:1. 使用#define定义常量:2. 使用const定...详情>>
2023-05-09 11:32:26c语言培训问答更多>>
新什么样的C语言培训机构好?
新C语言培训一般要学多久?
新C语言培训都学什么内容?
新C语言培训后的工作方向有哪些?
新C语言培训后能找到工作吗?
新C语言培训班好吗?
新C语言培训注意事项
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区