#include<iostream.h> /*函数模板*/ template<class type> //type 叫做模板参数 type add(type a,type b) { type c = a+b; return c; } class complex //重载 { public: double a; double b; complex() { } complex(double x,double y) { this->a = x; this->b = y; } complex operator+(complex c) { complex c1; c1.a = this->a + c.a; c1.b = this->b + c.b; return c1; } }; void main() { int x = 10; int y = 20; int z = add<int>(x,y); cout<<z<<endl; double a = 10.123; double b = 20.345; double c = add<double>(a,b); cout<<c<<endl; complex c1(1,2); complex c2(10,20); complex c3 = add<complex>(c1,c2); cout<<c3.a<<" + "<<c3.b<<"i"<<endl; } #include<iostream.h> /*类模板*/ template<class type,int size> class Array { private: type* p; public: Array() { p = new type[size]; } ~Array() { if(p !=NULL) delete[] p; } void push(type val,int i) { *(p+i) = val; } type Get(int i) { return *(p+i); } }; class complex //重载 { public: double a; double b; complex() { } complex(double x,double y) { this->a = x; this->b = y; } complex operator+(complex c) { complex c1; c1.a = this->a + c.a; c1.b = this->b + c.b; return c1; } void print() { cout<<this->a<<" + "<<this->b<<"i"<<endl; } }; void main() { complex c1(1,2); complex c2(10,20); complex c3(100,200); Array<complex,10> arr; arr.push(c1,0); arr.push(c2,1); arr.push(c3,2); for(int i=0;i<3;i++) { arr.Get(i).print(); } } #include<iostream.h> #include<vector> #include<algorithm> using namespace std; bool compare(int a,int b) { if(a>b) return true; else return false; } void main() { std::vector<int> vec; for(int i=0;i<10;i++) { vec.push_back(i+1); } for(i =0;i<10;i++) { cout<<vec[i]<<" "; } cout<<endl; vector<int>::iterator it; for(it = vec.begin();it!=vec.end();it++) { cout<<*it<<" "; } cout<<endl; it = vec.begin(); it++; vec.insert(it,100); for(it = vec.begin();it!=vec.end();it++) { cout<<*it<<" "; } cout<<endl; it = vec.begin(); for(i=0;i<4;i++) { it++; } vec.erase(it); for(it = vec.begin();it!=vec.end();it++) { cout<<*it<<" "; } cout<<endl; sort(vec.begin(),vec.end(),compare); for(it = vec.begin();it!=vec.end();it++) { cout<<*it<<" "; } cout<<endl; } #include<iostream.h> #include<vector> #include<algorithm> #include<string.h> using namespace std; class student { private: int sid; char name[20]; int age; double score; public: student() { } student(int sid,char* pname,int age,double score) { this->sid = sid; strcpy(this->name,pname); this->age = age; this->score = score; } void print() { cout<<this->sid<<" "<<this->name<<" "<<this->age<<" "<<this->score<<endl; } char* getName() { return name; } double getScore() { return score; } }; bool compare_name(student st1,student st2) { if(strcmp(st1.getName(),st2.getName())>0) { return false; } else return true; } bool compare_score(student st1,student st2) { if(st1.getScore()>st2.getScore()) { return true; } else return false; } void main() { student st1(1,"zhangshan",23,98); student st2(2,"lisi",12,100); student st3(3,"wangwu",34,23); student st4(4,"amakif",45,67); student st5(5,"eee",38,76); vector<student> vec; vec.push_back(st1); vec.push_back(st2); vec.push_back(st3); vec.push_back(st4); vec.push_back(st5); vector<student>::iterator it; for(it = vec.begin();it!=vec.end();it++) { (*it).print(); } cout<<endl<<endl; sort(vec.begin(),vec.end(),compare_score); for(it = vec.begin();it!=vec.end();it++) { (*it).print(); } }