目录
一、输入输出
#include<iostream>
using namespace std; //std为standard,标准命名空间
int main()
{
//若没有using namespace std;
//则改为std::cout<<"HelloWorld!"<<std::end1;
cout<<"HelloWorld!"<<endl;
return 0;
<<:插入运算符
> endl:end line,控制符,表示重起一行(\n)
> endl和\n区别:endl具有换行和fflush(stdin)功能,清除缓冲流;
\n仅具有换行功能。
cout输出格式:
> cout<<"now you are here"<<"carrots"<<"that`s ok"<<endl;
> cout<<"now you are here"<<endl;
cout<<"carrots"<<endl;
cout<<"that`s ok"<<endl;
> cout <<"now you are here"
<<"carrots"
<<"that`s ok"
<<endl;
cout 编译处理过程:
![](https://i-blog.csdnimg.cn/blog_migrate/dcc4dabbd76672754bf8a2c4e607692f.png)
二、变量、数据类型及运算符
1、符号常量
符号常量
|
表示
|
CHAR_BIT
|
char的位数
|
CHAR_MAX
|
char的最大值
|
CHAR_MIN
|
char最小值
|
SCHAR_MAX
|
signed char的最大值
|
SCHAR_MIN
|
signed char的最小值
|
UCHAR_MAX
|
unsigned char的最大值
|
SHRT_MAX
|
short的最大值
|
SHRT_MIN
|
short的最小值
|
USHRT_MAX
|
unsigned short的最大值
|
INT_MAX
|
int最大值
|
INT_MIN
|
int最小值
|
UNIT_MAX
|
unsigned int 的最大值
|
LONG_MAX
|
long的最大值
|
LONG_MIN
|
long的最小值
|
ULONG_MAX
|
unsigned long的最大值
|
LLONG_MAX
|
long long的最大值
|
LLONG_MIN
|
long long的最小值
|
ULLONG_MAX
|
unsigned long long的最大值
|
C++常用数据类型
数据类型
|
类型说明符
|
位数
|
取值范围
|
备注
|
整形
|
int
|
32
|
-2147483648~
+2147483648
|
|
短整型
|
short int
|
16
|
-32767~++32767
|
|
长整型
|
long int
|
32
|
-2147483648~
+2147483648
|
|
单精度浮点型
|
float
|
32
|
-3.4E-38~+3.4E+38
|
精度6~7位
|
双精度浮点型
|
double
|
64
|
1.7E-308~+1.7E308
|
|
字符型
|
char
|
8
|
-128~+127
|
|
宽字符型
|
wchar
|
|
|
|
字符串
|
string
|
|
|
|
/
|
long double
|
12*8
|
|
|
/
|
long long
|
64
|
|
|
小结:
#include <iostream>
#include <cmath>
#include <iomanip> //控制符头文件
using namespace std;
int main()
{
//控制cout显示精度
//1、强制以小数的方式显示
cout << fixed;
//2、控制显示精度
cout << setprecision(2);
//输出double类型数据
double doublenum =100.0/3.0;
cout<< doublenum *1000000 <<endl;
return 0;
}
>结果:33333333.33
2、example1:
#include <iostream>
#include <iomanip> //控制符头文件
using namespace std;
int main()
{
double a=272;
double b=250;
double c=240;
cout <<left; //左对齐
cout<<setfill('_') //中间填充
cout<< setw(8)<<a << //seew(8)表示间隔8个字符
setw(8)<<b<<
setw(8)<<c<<endl;
return 0;
}
>运行结果:272_____250_____240_____
3、关于n++/n--和++n/--n
当两者单独出现的时候(除指针),两者一样
当出现下面情况:
int n=10;
if(++n >10){}
注:先运行++n,在运行比较
int n=10;
if(n++ >10){}
注:先运行比较,在运行n++
三、数组替代品
1、向量器vector:
-
是一个快速的动态分配内存的数组,大小可以动态扩展,在运行阶段设置长度
-
具有数组的快速索引方式
-
可以插入和删除元素
1.1. 定义:
vector<double> vec1;
vector<string> vec2(5);//默认vec2分配5个空间
vector<int> vec3(20,998);//分配cec2公告20个元素,每个元素都是998
1.2. 常用操作:
clear()
|
移除容器中的所有数据
|
empty()
|
判断容器是否为空
|
size()
|
返回容器中元素的个数
|
[index]
、
at(index)
|
返回索引为
index
的元素
|
erase(pos)
|
删除
pos
位置处的数据
|
erase(begin,end)
|
删除
(begin,end)
区间的数据
|
front()
|
返回第一个元素
|
insert(pos,elem)
|
在
pos
位置处插入一个元素
|
pop_back()
|
删除最后一个元素
|
push_back(elem)
|
在容器末尾插入一个元素
|
resize(num)
|
重新设置容器大小
|
begin()
、
end()
|
返回容器首尾元素怒的迭代器
|
swap
|
与另一个vector交换数据
|
max_size
|
得到vector最大可以是多大
|
capacity
|
当前vector分配的大小
|
resize
|
改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
|
reserve
|
改变当前vecotr所分配空间的大小
|
rbegin
|
将vector反转后的开始指针返回(其实就是原来的end-1)
|
rend
|
将vector反转构的结束指针返回(其实就是原来的begin-1)
|
建议使用场景:
1、开始就知道元素的数量
2、对数据的索引和随机访问频繁
3、插入和删除大多数在尾端
2、array
#include <iostream>
#include <array>
using namespace std;
int main()
{
/**定义数组*/
array<int,5> value_vec_daughter_baseinfos;
/**数组赋值*/
value_vec_daughter_baseinfos[0] = 80;
value_vec_daughter_baseinfos[1] = 15;
value_vec_daughter_baseinfos[2] = 15;
value_vec_daughter_baseinfos[3] = 11;
value_vec_daughter_baseinfos[4] = 11;
value_vec_daughter_baseinfos[5] = 21;
}