刷题笔记:记录一些简单函数和运算符

1.getline()
便于整行读入,可以记录空格(直接cin不行),但是不能记录回车,与stringstream 结合可以简单分割字符串。
例:

string str;
getline(cin,str);//读入一串字符串
stringstream iss(str);
string seg;
while(getline(iss,seg,'~'))//将输入的字符串以字符'~'分割

2.substr()
用于截取字符串的一部分,不会修改原字符串

string a = "abcdefg";
string b = a.substr(2,4);//从是a[2]开始截取4个数;
cout << b << endl;
//结果应该是"cdef"
string c = a.substr(2);//从是a[2]开始截取到最后;
cout << c << endl;
//结果应该是"cdefg"

3.stoi()
string转int没啥好说的;
4.bitset < n >
转n位二进制,多的去除,不够补0,.count()可以直接输出1的个数。

int a = 5;
bitset<3> b(a);
count << b.count << endl;
//输出应该是2

5.sort()
快速排序

vector<int> num = {0,1,24,2,5,6};
sort(num.begin(),num.end());
//num以升序排序
  1. priority_queue<_Node>堆排序
    C++中STL默认是大根堆,大的数据在队首,比较运算符是 < ;重载运算符可以自定义排序优先级
priority_queue<int> a; 
vector<int> num = {1,5,6,2,4,3,8,9};
for(int n:num) a.push(n);
while(!a.empty())
{
   cout << a.top() << " ";
   a.pop();
}
//输出结果:9 8 6 5 4 3 2 1

struct _Node{
    int key;
    int weight;
    _Node(int _key,int _weight)
    {
        key = _key;
        weight = _weight;
    }
    friend bool operator <(const _Node &a,const _Node &b)
    {
        return a.key > b.key;
    }
};

priority_queue<_Node> myque;//以key值大小排序,key值小的排前面
  1. & << ~
    & 将两数的二进制位全部进行AND操作;
    << 数字二进制位左移
    ~ 数字二进制所有位全部取反
    8.find_last_of()
    找到字符在字符串中最后出现的位置
string a = "aff~st87";
int pos = a.find_last_of('~');
cout << pos <<endl;
//输出结果是3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值