第3章心得 使用批量数据 Accelerate C++ 学习笔记7

1, 文件结束标志

windows(ctr + z)
linux/Unix(ctr + d)

2, 如果两个以上字符串字面量仅仅被空白符分隔开,那么这些字符字面量就会被自动连接到一起。

eg.

cout << "Enter all your grade ,"
<<"followed by end-of-file: ";

等价于:

cout << "Enter all your grade ,followed by end-of-file:"

*好处:对于一些过长的程序,对它们的阅读会非常的不方便,将字符串字面量分成两部分之后,就可以避免出现这种情况。

3, 未初始化

  • 如果不讲变量指定初始值,那就要隐含地依赖初始化
  • 默认初始化操作取决于变量的类型
    • 自定义类型的对象,如果没有给它们指定一个初始化程序,类就会自己指定一个
    • 不明确的初始化一个字符串,字符串就会被隐含地初始化为空
    • 对于内部类型的局部变量,则没有这样隐含初始化,意味着:变量未定义的话,创建变量的时,就会给这些变量分配适当的内存单元,而变量的值则是有这些单元中的随机信息组成的。【往往非常多的操环境会允许对未定义变量(经常会是一个对类型无效的值)的访问,冲突和错误结果的几率就会非常高】

4, 如果希望保持系统环境的独立性,就不能直接编写恰当的类型(因为不同的环境使用不同的类型表示长度),我们应该养成使用库定义的size_type表示容器的长度的良好编程习题————命名size类型时。

5, 非递减 != 递增,

因为某些元素可能会与其他元素相等。

6, 每当普通整数和无符号整数在表达式结合在一起时,普通整数就要被转换为无符号整数。

  • eg,homeword.size()-100 这表达式的结果是无符号类型的,意味着结果不能小于0————即使homeword.size()< 100

7, 定义输出长度

  • 类型streamsize,表示输入/输出库的长度,头文件<ios>
  • 控制器 setprecision,作用:指明输出所包含的有效位数,头文件<iomanip>
  • cout.precision(),作用:进行输出时所使用的精度
    • eg,
    •  streamsize pre = cout.precision();
      cout << setprecision(3)<< 3.1415926 << setprecision(pre) << endl;
      

8,C++标准的对库的执行性能要求非常高,库不仅要符合行为方面的规定,还要达到规范化的性能目标。C++是被设计为特别注重性能的应用服务的,同时在库中也大量的体现了对速度的要求。

所有符合C++系统环境都必须:

  • 以vector后面添加大量元素时,其性能不会随着元素个数的增加而成比例地恶化;
  • 以不低于nlog(n)的速度(运行时间小于nlog(n))实现排序算法,在这里,n是待排序的元素个数。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页