前言:工作后吃饭的语言是java,同时写一些python和js,在学习机器学习的时候发现有必要再熟悉一下c++,同时工作也有c++的使用需求。于是开始对照c++ primer自学,希望能够对同样是其他语言的学习者,在学习c++的时候提供一些帮助。
第1章: 起始 First program主流编译器:GNU 编译器和微软的编译器,运行微软编译器的命令是:cl
Input/OutputUsing namespace used to avoid inadvertent collsions between the same names.
Std::cin返回 std::cin对象
注释C++中有两种类型的注释:单行注释://和多行注释:/* */
如果有程序如下:
#include <iostream>int main(){
int sum = 0, value = 0;
while(std::cin >> value){
sum += value;
}
std::cout<< "Sum is: "<< sum << std::endl;// std::endl flush buffer
}
上面这段程序会一直读取输入的内容直到输入的结尾,在不同的操作系统中,标识输入的结尾是不同的,在类unix操作系统中,使用ctrl + D来表示输入结尾,在windows系统中,使用ctrl+Z标识。
关于编译器在类unix系统(含Mac)使用到的编译器和编译指令如下:
cc:在Mac上,cc作为clang的软链接。
clang:相比于gcc,clang有着编译速度快,编译产出小,编译提示友好等有点。而且使用c++编写,基于LLVM的C/C++/Objective C/Objective C++ 编译器。
gcc:GNU的c编译器,后面发展为可以编译很多的编程语言。
g++:c++的编译器。
msvc:windows上使用的c/c++编译器
关于这些区别的一篇博文:https://www.cnblogs.com/qoakzmxncb/archive/2013/04/18/3029105.html
C++中的类使用一个库的时候,需要包含关联的header文件。标准库的headers一般是不包含后缀名的,编译器一般不关心文件的后缀,但是IDE有时会。
clog的使用,默认地,写到clog中的数据会被buffer缓冲,一般用于报告程序运行过程中的信息。
第2章:基础 C++的原始内建类型C++中包含了一些基本的数学类型和void类型,作为原始内建类型。
Type Meaning Minimum Sizebool boolean NA
char character 8bits
wchar_t wide character 16bits
char16_t Unicode character 16bits
char32_t Unicode character 32bits
short short integer 16bits
int integer 16bits(所有操作系统?)
long long integer 32bits
long long long integer 64bits
float Single-precision floating-point 6 significant digits
double Double-precision 10 significant digits
long double Extended-precision 10 significant digits
需要注意的是,在上述表格中的数据类型所占用的内存大小根据平台的不同而不同。