ostream& operator<<(ostream& os,const List<Date>& rl)//重载<<运算符
{
Date temp;//定义结构体变量
for(int i=0;i<rl.size();i++)//遍历链表
{
rl.retrieve(i,temp);//复制数据
os<<temp.name<<'\n'<<temp.count<<'\n';//把数据定向到输出流
}
return os;//反回输出流对像
}
istream& operator>>(istream& is,List<Date>& rl)//重载<<运算符
{
Date rec;//定义结构体变量
string name;//定定义暂时字符串变量
while (true)
{
getline(is,name);//从输入流中获取数据,并存在name变量中
if(name=="")//当输入流为空时,退出循环
break;
rec.name=name;//把获取的数赋给结构体变量成员
getline(is,name);//再从输入流中获取数据,并存在name变量中
rec.count=atof(name.c_str()); //把字符串转换成浮点型
rl.insert(rl.size(),rec);//把rec插入链表中
}
return is;//反回输入流对象
}
这是对链表的读入文件和从文件的内容读入链表的例子