C++ 中 vector 和 string 与 find 有关的用法

1. 概述

如map,unordered_map, set 和 unordered_set 等容器本身就设计有find方法。但vector不同,本身没有find方法,需要借助 algorithm 头文件的 find 函数来实现。

string与其他容器更为类似,本身包含find方法,可以将其当作是有序的字符容器并和其他容器一起记忆。但不同的是当未找到子字符串时,会返回npos。

2:在 vector中:

#include <algorithm> // for find(vector.begin(), vector.end(), target)
#include <vector>
#include <iostream>
using namespace std;
void main() {
    vector<int> v = { 1,3,5,6,6,6 };
    int position = find(v.begin(), v.end(), 6) - v.begin();
    cout << position << endl;
}

使用方法:find(vector.begin(), vector.end(), target) 

输入:vector 是寻找容器,target 是寻找目标。前两个参数确定搜寻范围,最后一个参数确定寻找目标。

输出:返回 target 第一次出现的指针,若不存在则返回尾迭代器。

3: 在 string中:

#include <string> // for long_string.find(short_string)
#include <vector>
#include <iostream>
using namespace std;
void main() {
    string long_string = "long_and_short";
    string short_string = "short";
    int position = long_string.find(short_string);
    cout << position << endl;
}

使用方法:long_string.find(short_string)

输入:long_string 是包含目标的字符串,short_string 是目标字符串。

输出:返回目标字符串第一次出现的索引,若不存在则返回long_string.npos。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值