c++ ACM 基本输入输出、字符串与STL用法

本文详细介绍了C++中如何处理未知行数的输入,使用getline函数、stringstream解析字符串,以及如何操作StringVector和Map(包括构造、增加、删除、大小、排序和查找)的常用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入

行数据未知个数处理

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 排序</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值