find()---string、vector、map/set
-
string find()
(详细见上面string)
从string开始谈find() 查找是在处理数据中最重要的一种操作方式之一。
string中find()的应用( rfind() 类似,只是从反向查找,就是从string.length()-1的下标开始反向查找)
原型如下:
(a)size_t find(const string&str,size_t pos = 0)const; //查找对象 - string类对象 (b)size_t find(const char * s,size_t pos = 0)const; //查找对象- 字符串 (c)size_t find(const char * s,size_t pos,size_t n)const; //查找对象- 字符串的前ñ个字符 (d)size_t find(char c,size_t pos = 0)const; //查找对象- 字符 |
例子1:
string: string a="ojbk"; int t=a.find('o'); //t=0 int t=a.find('o',0); //t=0 *注:返回坐标; 第二个是从下标0开始查找
int t=a.find("oj") //t=0 int t=a.find("oj",0) //t=0 *注:返回坐标,查找字符串的第一个字符的坐标.第二个是从下标0开始查找
|
string在c++其实可以算是数据结构的一种 在c++的数据结构中string都会单独拿出一章来说 它具有自己单独的库,还是很强的。
-
vector find()
(详细见上面vector)
vector_find方法的使用
不同于map/set(map/set有find方法),vector本身是没有
find这一方法的,其find函数是依靠algorithm来实现的
所以要使用#include<algorithm>
template<class InputIterator, class T>InputIterator find (InputIterator first, InputIterator last, const T& val) |
例如:
include<algorithm> include<vector>
vector<int>::iterator it = find(vec.begin(),vec.end(),1); if(it != vec.end()) cout<<"found"<<endl; else cout<<"not found"<<endl; |
-
set/map find()
他们底层是由红黑树实现的,自带find()函数