继续对C++进行学习,第四章《计算》
目标:
- 正确
- 简单
- 高效
1. 常量表达式
constexpr double pi = 3.14;//定义一个**不可修改**的常量
一个constexpr符号常量必须给定一个在编译时就已知的值,例如:
constexpr int max = 100;
void use(int n)
{
constexpr int c1 = max + 7;//正确,c1是107
constexpr int c2 = n + 7d;//错误,不知道c2的值是多少
}
为了解决这一情况,C++提出了第二种解决方法:
const
constexpr int max = 100;
void use(int n)
{
constexpr int c1 = max + 7;//正确,c1是107
const int c2 = n + 7d;//正确,但是c2也是常量,不可修改
}
最常用的还是const
2.switch语句
switch(a){
case a的可能取值1:
语句...;
break;
case a的可能值2:
语句...;
break;
....
default:
语句...;
break;
- a必须是整型、字符型或者枚举类型。不能使字符串类型。
- case语句中的值必须是常量表达式,不能用变量。
- 不能在两个case语句中使用相同的数值。
- 允许在一个case语句中使用多个case常量。
- 必须在每一个case语句的末尾添加break。
3.函数
函数在使用前必须要声明。比如一个简单的求平方函数square(i)
在主函数之前必须要写:
int square(int);
然后再在后面随意的位置对函数进行定义。
4.vector
vector是一组可以通过索引来访问的顺序存储的数据元素。
vector<int> v = { 5,7,9,4,6,8 };
vector<string>phi = {"apple","banana","car"};
一个vector只能存储与其数据类型相同的数据。
vector<int>vi(6);//vector的6个整型元素被初始化为0
注意,不能引用一个不存在的vector元素:
vi[2000] = 44;//运行时出错
Vector v的元素范围为[0:v.size()),这点跟数组类似,也就是0~v.size()-1
v.size();//获得v的大小
遍历序列元素:
vector<int> v = { 5,7,9,4,6,8 };
for(int x : v)
{
cout << x << ';
}
vector<double> v;
v.push_back(2.7);//使用push_back将新元素添加到vector中,使之成为最后一个元素
v.push_back(6.4);
v.push_back(3.6);
插叙:sort排序函数:
C++内置了sort函数,利用algorithm的头文件即可调用:
sort(temps.begin(),temps.end());//其中temps是一个Vector
默认是按照从小到大的顺序进行排序的,详细方法不赘述