c++的lower_bound函数、upper_bound和find函数

文章目录

      • lower_bound函数和upper_bound函数的用法
      • string中的find函数
        • string中还有rfind()函数

lower_bound函数和upper_bound函数的用法

作用:
lower_bound用于查找容器中大于等于某值的数,返回这个数的指针。
upper_bound用于查找容器中大于某值的数,返回这个数的指针。

vector容器内的使用

#include 
#include 
#include 

using namespace std;

const int N = 1010;

int main()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);
	vector<int>::iterator it1 = lower_bound(v.begin() , v.end() , 3);
	vector<int>::iterator it2 = upper_bound(v.begin() , v.end() , 3);
	cout << *it1 << endl << *it2 << endl;
	return 0;
}
/*****输出*****/
3
4 

set和multiset自带lower_bound和upper_bound函数

#include 
#include 
#include 

using namespace std;

int main()
{
	set<int> st;
	st.insert(2);
	st.insert(1);
	st.insert(5);
	st.insert(4);
	set<int>::iterator it1 = st.lower_bound(3);
	set<int>::iterator it2 = st.upper_bound(3);
	cout << *it1 << endl << *it2 << endl;
	return 0;
}
/*****输出*****/
4
4

string中的find函数

作用:
find用于寻找字符串中某个字符的下标,如果存在返回下标,如果不存在返回-1。

两种用法:
string str;
str.find('e'); // 寻找str字符串中e的下标
str.find('e' , 5); // 从下标5开始,寻找e的下标
#include 
#include 

using namespace std;

int main()
{
	string str = "abcdefghijklmn";
	int k1 = str.find('d');
	int k2 = str.find('z');
	cout << k1 << endl << k2 << endl;
	return 0;
}
/*****输出*****/
3
-1

string中还有rfind()函数

作用:从字符串右边开始查找

#include 
#include 

using namespace std;

int main()
{
	string str = "abcdefghijklemn";
	int k1 = str.find('e');
	int k2 = str.rfind('e');
	cout << k1 << ' ' << k2 << endl;
	return 0;
}
/*****输出*****/
4 12

你可能感兴趣的:(c++,c++)