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。