2019/3/9

C++学习
一、Const
1、const限定的对象不可改变
const int ival=1;
int* ip=&ival;//错误不能将const地址赋值给非const地址
2、定义
const type cp;或type constcp;
3、用法
(1)指向常量的指针
const int ival=1;
const int cp=&ival;//允许将非const地址赋值给const指针
cp=3;//错误cp是指向常量的指针,他所指向的内存中内容不可改变。
(2)指向非const常量对象的const指针
int ival=1024;
int const
cp=&ival;//const指针必须初始化
cp=25;//指向的单元值可以变化
int iva=24;
pi=&iva;//错误const指针指向地址不可变
(3)指向const对象的const指针
const int ival=1024;
const int
const pi=&ival;//定义,第一个限定int ,表示指向单元是常量。第二个const限定指针,指针值是常量。
4、const限定引用
int ival=1;
const int&cp=ival;//const引用可以绑定非const对象
const int iva=1;
int &ip=iva;//非const不能指向const对象
int int &cp=iva//错误,const引用不能再指向其他对象
const int &ip=cp
2;//也可任意表达式const引用,只要表达式结果可转化
const int &p=5;//编译器生成10的临时对象
5、volatile限定词
当一个对象的值可能在编译器的控制或检测之外被改变时,应该将对象声明为volatile,与const用法一致
二、二、结构体
1、struct M{//定义结构体类型X
char a;
int b;
}
X s1,s2;
X*ps=&s2;
s1.a=‘a’;
s1.b=2;
s2.c=ps->c;//结构体成员不能独立使用,必须由结构体类型变量通过成员选择符“.”来选择或结构体额理性的指针通过“->”选择
sizeof(M)=8//由于使用边界对白技术,此时字节为8
二、优先队列(自动排序)
1、头文件#include
2、声明priority_queue<类型>队列名;
3、操作:入列q.push();
出列p.pop();
队列个数q.size();
是否为空q.empty();
首元素q.top();
末尾元素q.back();
4、默认大到小
三、map
1、关键值和映射值配对而成,在map中key值通常来排序。
2、功能:建立key与value对应,通过key快速查找(二叉树查找)
头文件#include
3、部分函数
m.size()容器大小
m.count(key)返回键值为key个数
m.begin()返回双向迭代器,指向第一个元素
m.clear()清空容器
m.erase(elem) 清空elme所有元素
5、m.insert(elem)
A)m.insert(map<type,type>::value_type( ,” ”))
B)m.insert(pair<string,float>(,””))
C)m.insert(make_pair( ,” ”))

猜你喜欢

转载自blog.csdn.net/qq_43627100/article/details/88373144