如下代码,map的值定义为类,为什么使用指针employee*
class employee;
map<int, employee*> personnel;
你可可以不使用指针啊。
如果你的变量是employee *p;你想把p放入map,那么你就要用指针
如果你的变量是employee q,那么你放入map就不能用指针了。也就是说和你的map用来存放变量的类型有关。
class A{};
map<int, A> ttt;
map<int, A*> sss;
A a1;
A *a2=new A;
ttt[1] = a1;
sss[1] = a2;
当然可以直接存类,但是存指针方便修改,而且占用空间也不大,建议使用指针
指针只有四个字节,读取的时候就不需要进行深拷贝了,速度快。
class employee;
map<int, employee*> personnel;
==如果你的实际代码就是这样子,那么class employee只是一个类申明,map就只能用指针类型,不能用对象类型;否则编译会报错的
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html