上机小笔记

关于C++中一些关键词和用法

向左对齐(setw 头文件 iomanip)

for(int i=1;i<=5;i++)
{
    for(int j=1;j<=5;j++)
        cout<<setw(5)<<left<<i*j;    
    cout<<endl;
}

等效于

for(int i=1;i<=5;i++)
{
    for(int j=1;j<=5;j++)
        printf("%-5d",i*j);
    printf("\n");
}

输出结果后 return 0 又不(lan)想(de)打花括号

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=2;i*i<=n;i++)
        if(!(n%i))  return 0*printf("合数");
return 0*printf("质数");
}

论如何不打出多余的换行符

for(int i=1;i<=n;i++)  printf("%d %d%c",p[i].a,p[i].b,"\n"[i>=n]);

想同时退出多个循环的时候还有一个语句

for(int i=1;i<=n;i++)
{
    for(int j=i;j<=m;j++)
    {
        //无聊的一段代码
        for(int j=1;j<=m;j++)
        {
            //无聊的一段代码
            if(/*奇奇怪怪的东西*/)  goto go;//跳转中... 
        }
    }
    //又是一段无聊的代码 
    go://你想要到达的地方 
}

进制转换是有函数的

转换二进制的语句头文件 bitset。

cout<<"2进制:"<<bitset<8>(n)<<endl;
cout<<"8进制:"<<oct<<n<<endl;  
cout<<"10进制:"<<dec<<n<< endl;  
cout<<"16进制:"<<hex<<n<<endl;  
//<8>表示保留8位输出

等效于

printf("%05o\n",n);    //按八进制格式输出,保留5位高位补零
printf("%03d\n",n);    //按十进制格式输出,保留3位高位补零
printf("%05x\n",n);    //按十六进制格式输出,保留5位高位补零

判断一个字符是不是数字

头文件 ctype.h

if(isdigit(ch))

取出一组数最大值

*max_element(f+1,f+1+n)

并查集的初始化(itoa 头文件 numeric)

itoa(f+1,f+1+n,1)
posted @ 2020-10-22 23:43  青鸢挽歌  阅读(98)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end