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