string str;
str.substr(0, 5);
字符串.substr(参数1,参数2)
参数1(可以是0、正整数、负数)
如果是0或正整数,则代表字符串截取的起始下标
如果是负数,则代表从倒数第几个字符开始截取
参数2:
字符串截取字符的个数(正整数)
如果是0或负数,则会返回空字符串
str.substr(5)
字符串.substr(参数);
如果是0或正整数:字符串截取的起始下标,默认截取至字符串结尾
如果是负数:则从倒数第几个字符开始截取,默认截取至字符串结尾
strlen(char) 获取字符数组char a[]的长度
set (操作)
set < type > s 定义一个集合s
s.insert( item ) 把 item放入s集合里面
s.erase( item ) 删除元素 item
s.empty( ) 判断集合是否是空的
s.size( ) 返回集合元素个数
s.count( 6 ) 返回元素6出现的个数,因为set是集合所以返回值只能是1or0,已经去重了 所以可用来判断这个元素是否存在
s.find( num ) find()返回的其实是一个指针/索引,如果 s中不存在num则最后返回的是end()
该功能检查元素是否属于集合。 如果元素属于集合,则它返回确切的迭代器位置,否则返回st.end() 。这一点和string的find用法又不相同。
C++STL中set不存在对应元素时set.find的返回值_Nepune79的博客-CSDN博客
可以参考这个博主写的:
C++ find 函数_MirrorN的博客-CSDN博客_c++ find
vector<int> v; find(v.begin(),v.end(),
//vector中find()算法
vector<string> v;
v.push_back("aaa");
v.push_back("bbb");
v.push_back("ccc");
v.push_back("ddd");
if(find(v.begin(), v.end(), "bbb") != v.end()){
cout<<*find(ar1.begin(), ar1.end(), "bbb")<<endl;//返回指针指向值(不能返回指针
cout<<find(v.begin(), v.end(), "bbb")-v.begin()<<endl;
//看到find函数的返回结果与vector的end比较可以看出其实这是一个指针,那么如果我们想要获得索引
//那么将返回结果与begin做差即可
}
else
cout<<"NO"<<endl;
//string中的find()操作
string str = "hello world";
char ch = 'l';
if(str.find(ch)!=string::npos){ //查找单个字符,没找到str.find(ch)返回的就是string::npos
cout<<str.find(ch)<<endl; //返回位置
}
else
cout<<"NO"<<endl;
//string:npos其实是等于4294967295的,通常使用这个值作为没有匹配到内容的结果判定。
//string中的find()操作
string str = "hello world";
char ch = 'l';
if(str.find(ch)!=string::npos){ //查找单个字符
cout<<str.find(ch)<<endl; //返回位置
}
else
cout<<"NO"<<endl;
//获取到所有的匹配字符的位置
int p = 0;
while(str.find(ch, p)!=string::npos){
p = str.find(ch, p);
cout<<p<<endl;
p = p + 1;
}
//获取匹配字符串的位置
string ps;
while(cin>>ps){
if(str.find(ps)!=string::npos){
cout<<str.find(ps)<<endl;
}
else
cout<<"NO"<<endl;
}
#include<iostream>
#include<set>
using namespace std;
int main()
{
set<int> st;
for(int i=0;i<=3;i++)
{
st.insert(i);
}
▲set<int>::iterator it=st.find(2);
▲cout<<*it;
return 0;
}
其中:
set<int>::iterator it=st.find(2); //返回的是迭代器,只能返回指向的元素值,不可求位置
cout<<*it; //同时如果找不到,返回的其实是元素个数
可用这个替代==> cout<<*st.find(2)<<endl; 得到
返回值是 2
map
//定义一个map对象
map<int, string> dx
//查找元素1出现的次数
dx.count(1)
// 第一种 用 insert函數插入pair , pair 是一个封装好的含有2个对象的结构体,map里经常使用pair
dx.insert(pair<int, string>(000, "student_zero"));
// 第二种 用 insert函数插入value_type数据
dx.insert(map<int, string>::value_type(001, "student_one")); —> 不常用
// 第三种 用"array"方式插入
mapStudent[123] = "student_first";
mapStudent[456] = "student_second";