C++STL中algorithm里find()函数
1.string中的运用
1.1函数原型及描述
函数1
size_type find(const string & str, size_type pos = 0) const
形参列表str
:要查找的子字符串string
变量,pos
:要查找的起始位位置
返回为参数size_type
:该子字符串首次出现时其首字符的索引;否则,返回-1
应用
string subString = "Let";
string mainString = "Let life be beautiful like summer flowers,death like autumn leaves";
char ch = subString[0];
int isFindPosition = -1;
isFindPosition = mainString.find(subString, isFindPosition + 1);
cout << "isFindPosition: " << isFindPosition << endl;
输出:isFindPosition:0
函数2
size_type find(const char * s, size_type pos = 0) const
形参列表char *
:要查找的子字符串char *
类型,pos
:要查找的起始位置
返回为参数size_type
:该子字符串首次出现时其首字符的索引;否则,返回-1
函数3
size_type find(const char ch, size_type pos = 0) const
形参列表char
:要查找的子字符char
类型,pos
:要查找的起始位置
返回为参数size_type
:该子字符串首次出现时其首字符的索引;否则,返回-1
应用
string subString = "Let";
string mainString = "Let life be beautiful like summer flowers,death like autumn leaves";
char ch = subString[0];
int isFindPosition = -1;
isFindPosition = mainString.find(ch, isFindPosition + 1);
cout << "isFindPosition: " << isFindPosition << endl;
输出:isFindPosition:0
函数4
size_type find(const char * s, size_type pos = 0, size_type n) const
形参列表char *
:要查找的子字符char*
类型,pos
:要查找的起始位置,n
:的前n个字符组成的子字符串
返回为参数size_type
:该子字符串首次出现时其首字符的索引;否则,返回-1
应用
string mainString = "Let life be beautiful like summer flowers,death like autumn leaves";
char * subString = "beautiful";
char ch = subString[0];
int isFindPosition = -1;
isFindPosition = mainString.find(subString, isFindPosition + 1, 3);
cout << "isFindPosition: " << isFindPosition << endl;
输出:12
2.vector中的运用
2.1函数原型及描述
find(first_position, last_position, find_object)
,返回参数为查找到的位置,可定义变量vector<int>::iterator res;
储存返回的位置。(当然返回类型可以使用auto类型)
当在[first, last]查找到第一个与被查找相等的元素时,即返回查找到的元素位置,返回类型为iterator
,表示元素所在的位置;若未查找到,则返回last的位置。
1.3代码示例
vector<int> numbers = { 1, 2, 9, 1, 2 };
vector<int>::iterator res;
bool isFind;
res = find(numbers.begin(), numbers.end(), 9);
cout << res - numbers.begin() << endl;
小李,不讲道理
发布了10 篇原创文章 · 获赞 1 · 访问量 211
私信
关注