STL中的迭代器有什么作用,为什么有指针之后还要使用迭代器
- 首先,迭代器的具有提供一种方法,可以顺序的访问容器中的对象,但是有又不会暴露底层内部表示。
- 迭代器和指针的区别:
- 迭代器不是指针,它是一种类模板,虽然他模拟了指针的一些功能,如重载了++、–等,迭代器封装了指针,他其实是一个可以遍历STL中全部元素的对象,它可以适应任何类型,也可以根据不同的类型来实现++、-- 等操作;
- 迭代器返回的是对象的引用,而不是对象的值;
- 产生迭代器的原因就是,可以通过迭代器,不在意类型的区别,同样也不用暴露内部的结构,就可以达到循环遍历集合的效果。
c++中类的访问权限
- public 任何类都可以使用可以使用
- private 只有本类的成员函数可以使用
- protected 只有本类成员函数和友元可以使用
struct和calss的区别
- struct存放在栈中,class存放在堆中
- struct在没有声明成员的访问修饰符的时候,默认是public,erclass默认是private;
- struct默认是使用private继承,而class默认是public继承
- 至于为什么没有抛弃struct,是因为想要c程序员更加有归属感,并且可以更好地用c++编译器兼容以前的c项目
如果你感觉你写的东西更像一个数据结构,那么就用struct,如果更像一个对象,那么就用class
c++类中可以定义引用数据成员吗
可以,但是必须在构造函数的初始化列表中进行初始化,如果有多个构造函数,则每个构造函数的构造列表中必须都要对其进行初始化;