网站大量收购独家精品文档,联系QQ:2885784924

STL实用入门教程第二讲白板.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STL实用入门教程第二讲白板

讲解要点 一、函数模板与类模板的用法; 二、容器的分类,各个容器的数据结构; 三、容器vector的具体用法迭代器的具体用法。 函数模板的 int max(int a,int b) { return a b ? a : b; } char max(char a,char b) { return a b ? a : b; } float max(float a,float b) { return a b ? a : b; } templatetypename T //或者 templateclass T T max(T a, T b) { return ab? a:b; } void main() { int iMax = max(3,5); //调用int max(int a, int b); char chMax = max(w,d); //调用char max(char a, char b); float fMax = max(2.7f, 1.3f); //调用float max(float a, float b); } 类模板的 class CMax { public: CMax(int a, int b) { m_a = a; m_b = b; } int GetMax() { return m_am_b? m_a:m_b; } private: int m_a; int m_b; } templatetypename T //或者 templateclass T class CMax { public: CMax(T a, T b) { m_a = a; m_b = b; } T GetMax() { return m_am_b? m_a:m_b; } private: T m_a; T m_b; }; void main() { CMaxint maxInt(3,5); //需要指定类型 int iMax = maxInt.GetMax(); CMaxchar maxChar(w,d); char chMax = maxChar.GetMax(); CMaxfloat maxFloat(2.7f,1.3f); float fMax = maxFloat.GetMax(); } **************************************** 可以定义多种类型的形参。 templatetypename T1, typename T2 class CTest {...}; 对象实例化时: CTest testAint, float; CTest testBdouble, string 容器的简介 各数据结构在查找,插入,删除时的效率。 容器的分类 序列式容器:vector, deque, list 关联式容器:set, multiset, map, multimap vector对象的默认构造 vectorT vecT; vectorint vecInt; //一个存放int的vector容器。 vectorfloat vecFloat; //一个存放float的vector容器。 vectorstring vecString; //一个存放string的vector容器。 ... //尖括号内还可以设置指针类型或自定义类型。 Class CA{}; vectorCA* vecpCA; //用于存放CA对象的指针的vector容器。 vectorCA vecCA; //用于存放CA对象的vector容器。由于容器元素的存放是按值复制的方式进行的,所以此时CA必须提供CA的拷贝构造函数,以保证CA对象间拷贝正常。 vector末尾的添加移除操作 vectorint vecInt; vecInt.push_back(1); vecInt.push_back(3); vecInt.push_back(5); vecInt.push_back(7); vecInt.push_back(9); vecInt.pop_back(); vecInt.pop_back(); //{5 ,7 ,9} vector的数据存取 vectorint vecInt; //假设包含1 ,3 ,5 ,7 ,9 vecInt.at(2) == vecInt[2] ; //5 vecInt.at(2) = 8; 或 vecInt

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档