C++需要注意的地方和小算法
C++11的标准
1 auto //可以自动类型, 2 3 auto cars=15//自动转化为int
强制转换 (long)thorn =long (thorn) //前者是c标准,后者是c++
还有一种 static_cast<long> (thorn) //这种是c++标准
数组各种
array<float,4> score ={68,66,18,12}; //头文件arrary
valarray <double>di(9);
vector <int> color (10); //头文件vector
普及知识:(array和vector的区别)
1:array 定义的时候必须定义数组的元素个数;而vector 不需要;且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象,
非const变量以及需要到运行阶段才知道其值的const变量都不能用来定义数组的维度.
2:array 定义后的空间是固定的了,不能改变;而vector 要灵活得多,可再加或减.
3:vector有一系列的函数操作,非常方便使用.和vector不同,数组不提供 push——back或者其他的操作在数组中添加新元素,数组一经定义就不允许添加新元素;
若需要则要充许分配新的内存空间,再将员数组的元素赋值到新的内存空间。
4. 数组和vector不同,一个数组不能用另一个数组初始化,也不能将一个数组赋值给另一个数组;
C++11 数组历遍简单的基础
1 #include <iostream> 2 using namespace std; 3 int main(void) 4 { 5 int a[6]={1,2,3,4,5,6}; 6 for(int &x:a) //enter the array 7 cin>>x; 8 for(int x:a) //output the array 9 cout <<x<<endl; 10 return 0; 11 }
面向对象的输出;
1)getline () //回车或者换行结束
cin.getline(name(数组名),lenth(长度)) //别忘记加上空字符
注意:他是将回车键或换行转换’\n’ (回车和“\n”进入缓冲区)
cin.get()表示输入任意一个字符,但是不把回车键“\n”放入缓存区
可以写成cin.get().get <=>cin.getline 那么.get可以换取一个回车
cout << R” \n ”<<endl; //输入原型的字符串,即使有‘\n’都输出 \n来
如果要将“”也输出,可以用下面的
Cout << R”+*(“(who wouldn’t ?)”,she whisered.)+*"<<endl;
即 “+*和+*” 替代了””
3)枚举上限和下限额取法:比如枚举的最大值为101,2的幂次方最靠近的是128,所以上限为127,枚举的最小取值为-6,2的幂次方最靠近为-8,所以下限为-7
将指针变量加1后,其增加的值等于指向的类型占用的字节数
一个当你输入错误重新输入的基本思想,非常基础:
\
3种方法实现两个数交换
1 b=a-b; 2 a=a-b; 3 b=a+b; 4 5 a=a^b; 6 b=a^b; 7 a=a^b; 8 9 c=a; 10 a=b; 11 b=c;