C++写法

· · 个人记录

C++写法

程序框架


#include <iostream>

using namespace std;

int main()
{

    return 0;
}

头文件

//C++中可以引用C语言的所有头文件,引用时在前面加上c就可以了
例如:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>

C++常用头文件

#include <iostream>
#include <algorithm> // 包括 min() max() swap() sort()等常用函数
#include <string>   //字符串
#include <iomanip> // 保留小数

//包括以后会用到的(后面会讲,现在了解即可)
#include <vector>
#include <list>
#include <stack>
#include <string>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <bitset>

输出句子


//C++中使用 cout 输出 例:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World" << endl; // endl 为换行

    return 0;
}

//输出为 Hello World

输入

整形

//和C语言一样,C++输入前同样需要定义变量
#include <iostream>

using namespace std;

int main()
{
    int a, b;

    cin >> a >> b; // C++中利用 cin 输入

    cout << a + b << endl; //输出 a + b 的值

    return 0;
}

字符型

//同整形
#include <iostream>

using namespace std;

int main()
{
    char ch;

    cin >> ch;

    cout << ch << endl;

    return 0;
}

浮点型


#include <iostream>

using namespace std;

int main()
{
    double a;

    cin >> a ;

    cout << a << endl;

    return 0;
}

在做题时,题目可能会涉及到保留几位小数,在C++中通常有两种方法

方法一

//引用 printf 注:要包含#include <cstdio>头文件

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    double a;

    scanf("%lf", &a);

    printf("%.2f\n", a);

    return 0;
}
方法二

//引用C++的函数 注:需要包含#include <iomanip>头文件

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    double a;

    cin >> a;

    cout.setf(ios::fixed);

    cout << fixed << setprecision(2) << a << endl;

    return 0;
}

同步


// cin 与 scanf 在小数据量读入时差别不大,但是当数据量很大的时候 cin //的速度明显慢于 scanf ,
//甚至在读入数据时就会超时(TLE),为了减小读入时间的差距,可以选择关闭同步
//(仍建议大数据量使用scanf,因为就算关闭同步,读入时间也会比scanf慢)

#include <iostream>

using namespace std;

int main()
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);//关同步

    return 0;
}

新增类型

布尔类型
    bool leap;   // 布尔类型:只有 true 和 false
    leap = true;
    leap = false
字符串类型
    string s;  //字符串类型
字符串输入
方法一 直接赋值
    string s = "asdasdasd";
方法二 使用 cin 输入

    cin >> s; //字符串不包含空格

    getline(cin, s); // 字符串中包含空格
字符串长度
    string s;
    cin >> s;
    int len_1 = s.length(), len_2 = s.size(); // length()与size()无差别
    cout << len_1 << ' ' << len_2 << endl;
字符串相加
    string s1, s2;

    cin >> s1 >> s2;   //例如输入s1 为asd, s2 为jkl

    s1 += s2;

    cout << s1 <<endl;  //输出为asdjkl
字符串比较
    //按照字典序比较

    //例如判断两字符串是否相等

    string s, ss;
    cin >> s >> ss;
    if (s == ss)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;

字符串输出

方法一
    string s;
    cin >> s;
    cout << s << endl;
方法二
    string s;
    cin >> s;
    int len = s.length();
    for (int i = 0; i < f; i ++)
        cout << s[i];
    cout <<endl;
方法三
    string s;
    cin >> s;
    for (auto it : s) // STL遍历容器的方法,目前了解即可
        cout << it;
    cout <<endl;