马鞍山网站制作公司,二级域名做网址导航大全网站,网站建设的简介,阿里云做的网站程序员简介#xff1a; CSDN博客专家#xff0c;专注Android/Linux系统#xff0c;分享多mic语音方案、音视频、编解码等技术#xff0c;与大家一起成长#xff01; 优质专栏#xff1a;Audio工程师进阶系列【原创干货持续更新中……】#x1f680; 人生格言#xff1a; 人生… 简介 CSDN博客专家专注Android/Linux系统分享多mic语音方案、音视频、编解码等技术与大家一起成长 优质专栏Audio工程师进阶系列【原创干货持续更新中……】 人生格言 人生从来没有捷径只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注Android系统攻城狮 1.前言 本篇目的理解C之std::search应用实例 在C中std::search是一个算法函数用于在一个序列中搜索指定的子序列并返回第一次出现该子序列的位置。
std::search函数的用法如下
template class ForwardIterator1, class ForwardIterator2
ForwardIterator1 search(ForwardIterator1 first1, ForwardIterator1 last1,ForwardIterator2 first2, ForwardIterator2 last2);其中first1和last1表示要搜索的主序列的起始位置和结束位置first2和last2表示要搜索的子序列的起始位置和结束位置。
std::search函数会从主序列中的first1位置开始按顺序逐个比较与子序列中的first2位置开始对应的元素直到子序列中的元素全部匹配或者到达主序列的last1位置。如果找到了匹配的子序列函数会返回子序列在主序列中的起始位置否则返回last1。
2.应用实例
#include iostream
#include vector
#include algorithmint main() {std::vectorint vec {1, 2, 3, 4, 5, 6, 7, 8, 9};std::vectorint sub {3, 4, 5};auto result std::search(vec.begin(), vec.end(), sub.begin(), sub.end());if (result ! vec.end()) {std::cout 子序列出现在主序列中的位置 std::distance(vec.begin(), result) std::endl;} else {std::cout 未找到子序列 std::endl;}return 0;
}