字符串去重:
字符串去重 #include <bits/stdc++.h> using namespace std;int main() { a="11322";sort(a.begin(),a.end());a.erase(unique(a.begin(),a.end()),a.end());cout<<a<<endl;return 0; } //unique函数返回没有重复区间的区间结尾的迭代器。(a=“12312”) //然后删除1的迭代器到最后。
vector:int n=4;vector<int>q;for(int i=1;i<=n;i++){int x;cin>>x;q.push_back(x);} sort(q.begin(),q.end());//排序q.erase(unique(q.begin(),q.end()),q.end());//排序for(auto i:q)//遍历;cout<<i<<' ';输入 1 1 2 3输出 1 2 3
2.getline()属于string;
string s; getline(cin,s); cout<<str<<endl;
3.读掉换行
str="\n"; getline(cin,str);
// string str1; //生成空字符串 // string str2("123456789"); //生成"1234456789"的复制品 // string str3("12345", 3, 1);//结果为"4",从3开始1个数 包括3 // string str5(5, '1'); //结果为"11111"//string s="hello,world!";//从位置6开始长度为5的字符串,用"girl"代替; //s.replace(6,5,"girl");//从i开始到j位置[i,j)用"boy"代替;//如果i==j,那么就是在i这个位置插入字符串; //s.replace(s.begin()+j,s.begin()+j,"boy");// 尾插一个字符s1.push_back('a'); //str.insert(s.begin()+i,'a')如果前面事s.begin()+i那么只能插入字符;// str.insert(pos,"string"如:cs):在指定的位置pos插入字符串;//string s1 = "123456789"; // s1.erase(s1.begin()+1); // 结果:13456789 // s1.erase(1);//删除1,包括1以后的所有值;//结果:1 // s1.erase(s1.begin()+1,s1.end()-2); // 结果:189//都是闭区间 // s1.erase(2,1); 是删除2后边的1个位置 // 结果:12456789 // 包括第2个 //s1.erase()//直接删完;// reverse(s.begin(),s.end());string str=s;//string s="12345" //string str=s.substr(3,1); 结果:4//string s("dog bird chicken bird cat");//字符串查找-----找到后返回首字母在字符串中的下标// 1. 查找一个字符串// if(s.find("chicken",0)!=string::npos//-1)//cout << s.find("chicken") << endl; // 结果是:9// 2. 从下标为6开始找字符'i',返回找到的第一个i的下标//cout << s.find('i',6) << endl; // 结果是:11// 3. 从字符串的末尾开始查找字符串//,返回的还是首字母在字符串中的下标// cout << s.rfind("chicken") << endl; // 结果是:9// 4. 从字符串的末尾开始查找字符//cout << s.rfind('i') << endl; 、// 结果是:18-------因为是从末尾开始查找,//所以返回第一次找到的字符//tring s1("0123456789");//string s2 = s1.substr(2,5); // 结果:23456-----参数5表示:截取的字符串的长度