zoukankan      html  css  js  c++  java
  • 知识点

    ①常用的函数及库

    ②小心使用全局变量

    例如:

    #include<cstdio>

    int g = 0;

    int f() { g++; return g; } //修改全局变量的函数

    int main() {

       int a = f();

       int b = f();

       printf("%d %d ", a, b);

    return 0; }

    运行后a!=b。

    ③精度问题

    #include<cstdio>

    int main() {

    double f;

    for(f = 2; f > 1; f -= 1e-6);

    printf("%.7f ", f);

    printf("%.7f ", f / 4);

    printf("%.1f ", f / 4);

    return 0; }

    输出如下:

    0.9999990

    0.2499998

    0.2

    分析发现,在不断减1e-6的过程中出现了误差,使得循环终止时f并不等于1,而是比1小 一点。在除以4保留1位小数时成了0.2。如果不出现误差,正确答案应该是0.25四舍五入保留 一位小数,即0.3。有 一种方法可以缓解这种情况:加上一个EPS以后再输出。这里的EPS通常取一个比最低精度 还要小几个数量级的小实数。例如,要求保留3位小数时取EPS为1e-6。(但是不总是可行的)

    ④C++ string类型

    C++提供了一个新的string类型,用来替代C语言中的字符数组。用户仍然可以继续用 字符数组当字符串用,但是如果希望程序更加简单、自然,string类型往往是更好的选择。 例如,C++的cin/cout可以直接读写string类型,却不能读写字符数组;string类型还可以像 整数那样“相加”,而在C语言里只能使用strcat函数。

    例题:输入数据的每行包含若干个(至少一个)以空格隔开的整数,输出每行中所有整数之和。

    #include<iostream>
    #include<string>
    #include<sstream>
    using namespace std;
    int main() {
        string line;
        while(getline(cin, line)) {
            int sum = 0, x;
            stringstream ss(line);
            while(ss >> x) sum += x;
            cout << sum << "
    ";
        }
    return 0;
    }

    每行中所有整数之和。

    string类在string头文件中,而stringstream在sstream头文件中。首先用getline函数读一行数 据(相当于C语言中的fgets,但由于使用string类,无须指定字符串的最大长度),然后用这 一行创建一个“字符串流”——ss。接下来只需像读取cin那样读取ss即可。

    虽然string和sstream都很方便,但string很慢,sstream更慢,应谨慎使用

  • 相关阅读:
    html知识点
    BFC的布局规则以及触发条件
    父元素与子元素之间的margin-top问题(css hack)
    加overflow-hidden就可以解决高度塌陷问题,overflow-触发BFC
    子元素margin-top为何会影响父元素?
    子div设置margin-top使得父div也跟着向下移动
    vue 之 mongodb安装问题
    vue 之 nginx原理(webpack环境下配置)
    vue 之 PC端项目配置
    ASP.NET CORE (一)
  • 原文地址:https://www.cnblogs.com/LOW-ctfer/p/10412643.html
Copyright © 2011-2022 走看看