蓝桥c++基础(一)

###蓝桥杯中基本不会用到指针

1.#include<bits/stdc++.h>//万能头文件

2.using namespace std;//释放std命名空间中的变量名,即可以使用c++标准库11

  • 不加这个用cout会报错,因为cout没有在c中定义,他是c++里面的一个库函数
  • 或者也可以这样写std::cout<<

 3.const int maxn=1e5+5;//不会改变的量一般前面就加上const

  • 一般不会有题目爆空间复杂度
  • 爆空间的话一般是1e9
  • 后面改变会报错

 4.O(1) //O代表时间复杂度,1代表只进行一次操作

5.做题:先思考,再看题解,会了自己手敲一遍

6.经验:看清数据范围,不要读错题,按自己的节奏走

  • double双精度浮点数
  • int整数
  • char ch=‘A’字符
  • char[ ]="hello"字符串
  • bool b=true判断变量//c++会把true等价于1

7.

  • 在头文件下定义的数组叫全局数组会自动初始化为0
  • 在main函数里定义它就是局部变量不一定为0

8.

  • typedef long long ll //意思是把long long类型定义为ll方便后面使用

       ll a[maxn]; //就等于long long a[maxn];

  • typedef做不到宏定义的效果
  • #define ll long long //表定义 遇到ll就替换为long long
  • #define jie 1+2+3 //遇到jie就替换为1+2+3

 9.#define int long long //long long1e18以内是可以的

  • 这样全定义int为long long使用起来会很方便 
  • 后面不能写int main()这样就等价于long long main() //这里的long long是不能作为main的返回值的 
  • 一般会写为signed main() //这里的signed和int是一样的,只是为了防止报错所以这样子干

 10.交换变量:

  • int a=5,b=3;
  • int tmp=b;
  • b=a;
  • a=tmp; //tmp是一个临时变量

        或者用swap也可以

  • swap(a,b);

11. 这里建议使用cin,cout不使用scanf,printf比较方便

  • cin,cout的缺点输入输出较慢//当数据范围大于2e6的时候
  • 这里需要做一个优化ios::sync_with_stdio(false)
    • ​​​​​        ​                 cin.tie(0);
      •                   cout.tie(0);     
  • 尽量不要使用endl换行使用"\n",它会清空缓存区 //输出cout这部分的优化就会没有作用

12.读入一整个行字符用getline(cin,ss)  

  • string ss;
  • getline(cin,ss);

 13.string s1="apple"; //等价于char s[ ]="apple";

14.reveser(s.begin(),s.end()); //把字符串s翻转

  • 左闭右开【1 2 3 4 5 *)*这个位置是不能访问的所以说还是到5这个位置

15.cout<<s.find("is"); //查找子串中字符串的位置

16.cout<<s.substr(5,2); //substr可以裁取出字符串的子串,从下标为5处截取2个字符串

17.cout<<s.replace(5,2,"is not"); //从下标为5处删掉两个替换为is not

18.cout<<s.erase(0,4); //从下标为0处删掉4个字符

19.cout<<s.insert(0,"insert"); //从下标为0处插入insert

  • ###除reverse,insert外,其他操作对字符串本体是没有影响的
输入0输出1 输入1输出0:
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
    char x;
    cn>>x;
    if(x=='0'){
        cout<<1<<"\n";
    }
    else{
        cout<<0<<"\n";
    }
}

 

翻转数字输出:
#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    getline(cin,s);
    reverse(s.begin(),s.end());
    cout<<s<<"\n";
}

 

20.cout保留两位小数这样写:cout<<fixed<<serprecision(2)<<a<<"\n"; //即a保留两位小数输出

  • 输入double如果为3.155 正常是输出3.16 但由于计算机精度问题会是3.1549999999 所以输出就是3.15

 

 

  • 31
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值