文章目录
输入
行数据未知个数处理
getline 输入一行数据
#include<string>
string ss;
getline(cin, ss);
这样,getline遇到回车或者EOF才结束操作。
输入是一行按空格分割的字符串 sstream 按空格分割字符串
int main() {
string str="i am a boy";
istringstream is(str);
string s;
while(is>>s) {
cout<<s<<endl;
}
}
输入是一行按分割符分割的字符串:1,1,2,2,3,3
ss.peek()是查看下一个字符,ss.ignore是移除第一个字符,当下一个字符是,时,移除
getline(cin, s);
int x;
stringstream ss(s);
while(ss>>x) {
cout<<x<<endl;
if (ss.peek() == ',') ss.ignore();
}
第一行数字,第二行字符串
如果使用getline()获取一行字符串 需要用getchar()吸收掉换行符
int m,n;
string s;
cin>>m>>n;
getline(cin,s);
cout<<m<<n<<s<<endl;
String
Vector
vector是动态扩充的数组
构造
- vector():创建一个空vector
- vector(int nSize):创建一个vector,元素个数为nSize
- vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
- vector(const vector&):复制构造函数
- vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中
增加
- void push_back(const T& x):向量尾部增加一个元素X
- iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一个元素x
- iterator insert(iterator it,int n,const T& x):向量中迭代器指向元素前增加n个相同的元素x
- iterator insert(iterator it,const_iterator first,const_iterator last):向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据
删除
- iterator erase(iterator it):删除向量中迭代器指向元素
- iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
- void pop_back():删除向量中最后一个元素
- void clear():清空向量中所有元素
大小
vec.size();
清空
vec.clear();
排序
定义比较代码
bool Comp(const int &a,const int &b)
{
return a>b;
}
调用sort 排序</