C++刷题记录总结--常用知识点

举报
楚楚冻人玥玥仙女 发表于 2021/11/19 00:39:59 2021/11/19
【摘要】 刷题随笔记录~ transform转换容器的元素 string s="2019-07-25 14:45:23"; transform(s.begin(),s.end(),s.begin(),...

刷题随笔记录~

  • transform转换容器的元素
	string s="2019-07-25 14:45:23";
    transform(s.begin(),s.end(),s.begin(),[](char c)->char{
       if(string("0123456789").find(c)==string::npos)
           return ' ';
        return c;
    });
    cout<<s<<endl;// 2019 07 25 14 45 23

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • istringstream/ostringstream使用(字符串转数字、数字转字符串)
  int x = 123, y = 45;
  ostringstream oss;
  cout << x << y << " " << y << x << endl;  // 12345  45123
  oss << x << y << " " << y << x;
  int a, b;
  istringstream iss(oss.str());
  iss >> a >> b;
  cout << "a=" << a << endl;
  cout << "b=" << b << endl;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • C++格式控制输出(保留指定小数、整数指定宽度、不够长就用setfill(‘0’)占位)
double pi = 3.14159;
cout << fixed << setprecision(2) << pi << endl;// 3.14
int x = 2;
cout << setw(2) << setfill('0') << x << endl;// 02

  
 
  • 1
  • 2
  • 3
  • 4
  • 差分:adjacent_difference(v.begin(), v.end(), v2.begin())

  • 前缀和:partial_sum(v.begin(), v.end(), v2.begin())

  • 优先级队列,小顶堆 :priority_queue<Node, vector<Node>, greater<Node>> minheap;

  • 加速
    在这里插入图片描述

  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);

  
 
  • 1
  • 2
  • 3
  • C++函数指针:将函数作为实参传给另一个函数的形参调用
bool cmp1(int a, int b){
	return a < b;
}
bool cmp2(int a, int b){
	return a > b;
}
bool isBST(int root, int left, int right, bool (*cmp)(int, int)){
	// TODO
	// 这里面的函数名就用cmp
}

// 在主函数中调用isBST函数
int main(){
	bool f = isBST(1, 0, n-1, cmp1); // 按照cmp1的排序规则
	bool f2 = isBST(1, 0, n-1, cmp2); // 按照cmp2的排序规则
	return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • vector排序比set快,printf比ios::sync_with_stdio(false)快

  • 快速将代码中的int全部替换成long long。 使用宏替换int为long long

#define int long long

  
 
  • 1

注意,此时main的返回值int也会被替换成long long,那编译器可就要报错了
在这里插入图片描述
那咋办呢,就是将main前面的int换成同int相同含义的signed就可以啦,哈哈我是不是好机智??

signed main(){

}

  
 
  • 1
  • 2
  • 3

文章来源: blog.csdn.net,作者:爱玲姐姐,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jal517486222/article/details/97760801

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。