1,若vector中的元素类型不是stl中的类,即为vector<T> vec, T 是自定义类型,那么可以在T类结构中重载运算符<<。
例如:
#include"iostream"
#include<vector>
#include"fstream"
#include"ostream"
using
namespace
std;
class
person
{
public
:
person(
char
*,
char
*);
friend
ostream & operator<<(ostream &os,person &p)//友元函数定义在person类中,可以操作person中的成员。
{
os << .Id << p.Name;
return
os;
}
private
:
char
Id
[10];
char
Name[10];
};
inline
person::person(
char
*name,
char
*id)
{
strcpy
(Id, id);
strcpy
(Name, name);
}
int
main()
{
fstream file;
person *temp;
int
i;
file.open(
"result.txt"
,ios_base::out);
vector<person>stu;
for
(i = 0; i < 3; i++)
{
char
name[10], id[10];
cin >> name >> id;
temp =
new
person(name, id);
stu.push_back(*temp);
}
for
(i = 0; i <stu.size(); i++)
{
fp << stu[i];
}
fp.close();
system
(
"pause"
);
return
0;
}