求问C++中list容器中的元素类型可不可以是类?例如list<Student> aa;其中Student是类名。

如果不行,要把类中信息放入list容器中该怎么办?

第1个回答  2013-03-29
可以是类,不过一般用类的指针比较方便,如list<Student * >。追问

那如何赋初值和遍历它呢?

追答

不用初始化,需要添加的时候就用aa.push_back(stu);
遍历用
for (list::iterator it = aa.begin();it!=aa.end();++it)
{
//处理代码
}

追问

刚试了下aa.push_back(stu)要改为aa.push_back(&stu)才行,如果是list aa这样定义的话。那为什么一般用类的指针比较方便呢?我会加分给你的,虽然我的财富值只有20了吧。。。

追答

我说的stu是new student()产生的,本来就是指针,一直要动态分配的话,肯定用new这种形式啊。

本回答被提问者采纳

c++中容器是什么概念啊?
容器:能够操作多种数据结构和算法的模板类和函数库。能够像现实中的容器一样存放各种类型的对象,一个容器中的所有对象必须是同一个类型的。容器的类型:vector(向量)、list(列表)、deque(双队列)、set(集合)、map(映射)、multiset(多重集合)、stack(栈)、queue(队列)、priority_queue(...

C++ 新手问题 什么是类的实例?
就是你定义的类的对象。比如你定义了类如下:class A { public:\/\/成员函数 private:\/\/成员变量 };而 A a; \/\/就表示你定义了一个类A的实例,其实,和定义普通类型变量相似,只不过这里的类 \/\/型换成了类A,而不是像整型等基本类型,可以如同:int i; 一样去理解,i 就相当于int类型的实 ...

c++中怎样用list实现的多项式的加减啊。list<node>m_Polynomial是什么意思...
这个问题不难!list可直接用STL中的,使用时包含头文件#include,里面的各种函数都已实现好,list就是单链表,至于listm_PolynomialNode是list中的元素类型,里面可以是int型等等,这句话就是定义一个类型为上文定义的Node的list对象

c++集合set、multiset容器详解
set和multiset是C++中的关联式容器,它们的基本元素类型是pair。在set容器中,存储的每个键值对要求键(key)和值(value)必须相同。以两组键值对为例,第一组中每个键值对的键和值不相等,而第二组中每个键值对的键和值是相等的。对于set容器来说,只能存储第二组键值对,不能存储第一组。由于set...

在C++中,结构名,联合名,枚举名可直接作为类型名。这句话该怎么理解?
其中student就是结构名,它可以作为类型名,来修饰一个变量,如 student stu;说明stu变量的类型名是student。联合名 union person { int age;};其中person就是联合名,它可以作为类型名,来修饰一个变量,如 person per;说明per变量的类型名是person。枚举名 enum ReCode { ret_OK = 0,};其中ReCode...

在C++中,结构名,联合名,枚举名可直接作为类型名。这句话该怎么理解?
其中student就是结构名,它可以作为类型名,来修饰一个变量,如 student stu;说明stu变量的类型名是student。联合名 union person { int age;};其中person就是联合名,它可以作为类型名,来修饰一个变量,如 person per;说明per变量的类型名是person。枚举名 enum ReCode { ret_OK = 0,};其中ReCode...

c++集合set、multiset容器详解
1. Set和multiset是C++标准库中的关联容器,它们存储的是键值对,其中键是唯一的,而值则可以相同也可以不同。2. 在set中,所有的键值对必须具有相同的键。例如,给定两组键值对,第一组中键值对的键和值不同,而第二组中键值对的键和值相同。set仅能存储第二组键值对,无法存储第一组。3. ...

java中的ArrayList<Student> students=new ArrayList<Student>();什么...
但是List是一个集合,它是可以存任意对象的 假如不用泛型来限定对象类型 在add时 完全有可能students.add(Teacher),这个在编译是允许的,但是当你遍历List取出来的时候就会有问题了 你知道用什么类型取吗 用Student取那你当中存的Teacher肯定报错 所以用泛型能在编译时就帮你限定 不会出现类型转换错误。

C++vector容器里的2个成员怎么交换位置啊?里面的成员都是学生类对象,想...
楼上的回答可以.但是有更简单的方法.STL排序默认使用的是 "<"小于号来排序, 所以我们只需要为student类型重载"<"号就可以了.bool operator <(const student& _Left, const student& _Right){ return _Left.chengji < _Right.chengji;} int main(){ student s1;student s2;if(s1 < s2) \/\/ ...

c++中 假如有类 class student 那么 student ob(3) 是什
创建student对象ob,调用构造函数,给参数3

相似回答