当前位置: 首页 > article >正文

[杂项] C++从一个序列查找子序列的方法

前言

最典型的就是在一个字符串中查找对应的子字符串了,一开始我是以为C++没有类似的函数,其实是有的只不过不在 std::string 里面,而是在算法里面 std::search

#include <iostream>
#include <algorithm>

int main()
{
	std::string x = "sticky quesTion";
	std::string y = "sti";
	auto index = std::search(x.begin() + 1, x.end(), y.begin(), y.end(), [](const char left, const char right) {
		if (std::toupper(left) == std::toupper(right)) {
			return true;
		}
		else {
			return false;
		}
		});
	if (index != x.end()) {
		std::cout << "find" << std::endl;
		int number = std::distance(x.begin(), index);
		std::cout << "occur at " << number << std::endl;
	}
	else {
		std::cout << "can not find" << std::endl;
	}
	return 0;
}

无需多言,你想要的效果都有
std::search
但是对于分割字符串的算法 splite C++17是真的没有


http://www.kler.cn/a/396821.html

相关文章:

  • 五、函数封装及调用、参数及返回值、作用域、匿名函数、立即执行函数
  • 24.11.13 机器学习 特征降维(主成份分析) KNN算法 交叉验证(K-Fold) 超参数搜索
  • QT_CONFIG宏使用
  • 摄像机视频分析软件下载LiteAIServer视频智能分析软件抖动检测的技术实现
  • 《TCP/IP网络编程》学习笔记 | Chapter 10:多进程服务器端
  • Linux 下 mysql 9.1 安装设置初始密码 【附脚本】
  • SOHO场景开局(小型,多子网):AP+管理型交换机+路由器+光猫
  • windows@多系统引导名字修改@默认引导系统修改@bcdedit配置
  • c++ 类和对象(中)
  • 如何建立devops?
  • Flutter-Padding组件
  • leetcode hot100【LeetCode 236.二叉树的最近公共祖先】java实现
  • 【国产操作系统对Qt支持有哪些?】
  • 动态IP代理技术详解与实现
  • 后端Node学习项目-用户管理-增删改查
  • 开源共建 | 长安链开发常见问题及规避
  • Apache Spark Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
  • 使用electron-egg把vue项目在linux Ubuntu环境下打包并安装运行
  • 渗透测试之信息收集 DNS主机发现探测方式NetBIOS 协议发现主机 以及相关PorCheck scanline工具的使用哟
  • Spring Boot 核心配置文件
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发十三.3:将AVFrame转换成AVPacket.封装。代码改动
  • 深入理解 MySQL 大小写敏感性:配置、问题与实践指南20241115
  • 每日小题--买股票的最佳时机
  • vue2.x elementui 固定顶部、左侧菜单与面包屑,自适应 iframe 页面布局
  • flutter字体大小切换案例 小字体,标准字体,大字体,超大字体案例
  • 基于Java Springboot图书馆管理系统