1.自定义类型
struct Student{
int id;
string name;
Student();
Student(int ID,string Name){
id=ID;
name=Name;
}
friend ostream & operator << (ostream &out,const Student &s)
{
out<<s.id<<":"<<s.name.c_str()<<endl;
return out;
}
} ;
typedef struct Student Student;
重载<< 和>>即可实现输入输出,link=https://www.runoob.com/cplusplus/input-output-operators-overloading.html
必须要使用friend 友元函数
int main()
{
typedef struct Student Student;
Student s1(1001,"萧海");
cout<<s1;
return 0;
}
template<typename T>
void print_vector(vector<T> v)
{
typename vector<T>::iterator it;
for(it=v.begin();it!=v.end();it++)
{
cout<<*it;
}
cout<<endl;
}
vector<Student> b;
b.push_back(*(new Student(1,"jsj")));
b.push_back(*(new Student(2,"MSS")));
b.push_back(*(new Student(3,"ZHL")));
//? where exactly the insert happend?
b.insert(b.begin(),*(new Student(4,"HHH")));
b.insert(b.end(),*(new Student(5,"LLL")));
print_vector(b);
4:HHH
1:jsj
2:MSS
3:ZHL
5:LLL