-
list:链表 数据插入快查看全部
-
遍历方法2: 迭代器:iterator 定义方法: int main(void) { vector vec; vec.push_back ("hello"); vector<string>::iterator citer=vec.begin(); //vector<当前向量的数据类型>::iterator用来标记出当前的迭代器是属于向量的迭代器 迭代器的变量名(类型为vector<string>::iterator的变量)=vec.begin()通过迭代器指向向量第一个元素; for(;citer !=vec.end();citer++)//end是当前最后一个向量的下一个位置 { cout<< *citer<<endl;//*citer加*指的是当前的迭代器指向的元素本身 } return 0; }查看全部
-
empty()返回值为bool类型 遍历数组查看全部
-
vector常用函数查看全部
-
vector 向量(本质:对数组的封装,根据个数自动伸缩,特点:读取能在常数时间内完成) 定义方法 vector<T> v1;//vector保存类型为T的对象。默认构造函数v1为空 vector<T> v2(v1);//一个向量初始化另一个 vector<T> v3(n,i);//在v3中存储n个值为i的元素 vector<T> v4(n);//v4包含有值初始化元素的n个副本,如果初始化元素为0,n为10,则初始化10个0 具体使用:查看全部
-
#include<stdlib.h> #include<string> #include"MyArray.h" using namespace std; int main(void) {//模板类 MyArray<int,5,6>arr;//有一个数组,长度为5,每一个数都赋值为6,对象的名称为arr arr.display(); return 0; } #ifndef MYARRAY_H #define MYARRAY_H #include<iostream> using namespace std; template<class T,int KSize,int KVal> class MyArray { public: MyArray(); ~MyArray() { delete []m_pArr; m_pArr=NULL; } void display(); private: T *m_pArr; }; template<class T,int KSize,int KVal>//类外定义时,每一个函数都要写 MyArray<T,KSize,KVal>::MyArray()//注意<>内的模板参数要写,用,隔开 { m_pArr=new T[KSize]; for(int i=0;i<KSize;i++) { m_pArr[i]=KVal; } } /*template<class T,int KSize,int KVal> MyArray<T,KSize,KVal>::~MyArray() { delete[]m_pArr; }*/ template<class T,int KSize,int KVal> void MyArray<T,KSize,KVal>::display() { for(int i=0;i<KSize;i++) { cout<<m_pArr[i]<<endl; } } #endif查看全部
-
使用时的注意事项查看全部
-
类外定义是每一个函数前面都要写模板参数列表查看全部
-
类模板的使用查看全部
-
使用类模板时 成员函数在类外定义与在类内定义不同查看全部
-
template typename class template<class T>//t为模板参数 T max(T a,T b)//函数模板,t为类型,a,b为参数 { return(a>b)?a:b; } int ival=max(100,99);//模板函数 char cval=max<char>('A','B');//指明类型,传入参数 template<typename T>//typename与class 作用相同可以互换 void swap(T& a,T& b) { } swap<int>(x,y); //变量作为模板参数 template<int size> void display() { cout<<size; } display<>(10); template<typename T,typename C>//模板参数不同 void diaplay(T a,C b){}//不同类型 display<int,string>(a,str); //混用 template<typename T,class U> T minus(T* a,U b); template<typename T,int size>//typename指定数据类型,在设置变量size void display(T a) { for(int i=0;i<size;i++) cout<<a;//输出5个a(15) } display<int,5>(15); //函数的模板与重载 template<typename T> void display(T a); display<int>(10); template<typename T> void display(T a,T b); display<int>(10,20); template <typename T,int size) void display(T a); display<int,5>(30); //只有使用模板才能产生相应代码,代码之间才称得上是重载关系,只有模板不能是重载关系查看全部
-
要包含头文件#include<ostream>查看全部
-
索引运算符重载[][](不能用友元函数重载,只能用成员函数重载,第一个函数必须是this 指针) int operator[](int index);//传入int 类型索引index int Coordinate::operator [](int index) { if(0==index) {return m_iX;} if(1==index) {return m_iY;} } cout<<coor[0];//coor.operator[](0); cout<<coor[1];查看全部
-
输出运算符<<(不能用成员函数重载,只能友元) 返回值必须是ostream&,传入的第一个参数必须是ostream的一个引用out,然后是要输出的对象const Coordinate &coor friend ostream& operator<<(ostream &out,const Coordinate &coor); ostream & operator<<(ostream &out,const Coordinate &coor) { out<<coor.m_iX <<","<<coor.m_iY ; return out; } cout<<coor;//operator<<(cout,coor);//cout是一个ostream类型对象查看全部
-
+友元函数重载 friend c op+(const c&c1,const c &c2); {c temp temp.x=c1.x+c2.x; return temp; } c coor3(0,0); operator+(coor1,coor2);查看全部
举报
0/150
提交
取消