为了账号安全,请及时绑定邮箱和手机立即绑定
  • 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
    查看全部
  • 使用时的注意事项
    查看全部
    0 采集 收起 来源:[C++]类模板

    2016-05-24

  • 类外定义是每一个函数前面都要写模板参数列表
    查看全部
    0 采集 收起 来源:[C++]类模板

    2016-05-24

  • 类模板的使用
    查看全部
    0 采集 收起 来源:[C++]类模板

    2016-05-24

  • 使用类模板时 成员函数在类外定义与在类内定义不同
    查看全部
    0 采集 收起 来源:[C++]类模板

    2016-05-24

  • 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); //只有使用模板才能产生相应代码,代码之间才称得上是重载关系,只有模板不能是重载关系
    查看全部
    0 采集 收起 来源:[C++]函数模板

    2018-03-22

  • 要包含头文件#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
提交
取消
课程须知
学习本课程需要有一定的C语言和C++语言基础。如基础不太扎实的同学可以,参与C++远征攻略的学习计划,友情链接 http://www.imooc.com/course/programdetail/pid/42
老师告诉你能学到什么?
1、友元函数及友元类的定义及使用方法 2、静态数据成员和静态成员函数的定义及使用方法 3、运算符重载的技巧 4、函数模板和类模板的定义及使用方法 5、标准模板库的使用方法及基本原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!