我是靠谱客的博主 心灵美铃铛,最近开发中收集的这篇文章主要介绍c++学习心得:STL初学(基础篇),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

标准函数库(STL)学习心得(基础篇)

STL主要由两种组件构成:一是容器,包括vector、list、set、map等类;另一种组件是用以操作这些容器的所谓的泛型算法包括find()、sort()等。
容器又分为两种:
1、顺序型容器:vector和list,顺序型容器会依次遍历第一个、第二个、·········、直到最后一个元素,我们在顺序型容器主要进行迭代(iterate)操作
2、关联容器:map、set,关联容器更容易帮助我们快速查找容器中的元素值。map是一对key/value组合,key用于查找,value用来表示我们要储存或取出的数据。而set仅含有key,我们对它进行查询操作为的是判断一个值是否存在其中。
另一种为泛型算法:
泛型算法提供了许多可作用于容器类以及数组类型上的操作。所谓泛型,就是与被操作的元素的类型无关(不用关心元素的类型是int、double还是string),它们同样与容器类独立(不论是vector、list还是array)。
泛型算法借助一对iterator(first和last),标识我们要进行的迭代的范围,如果first=last,算法只作用于first所指元素,如果first不等于last,指针便首先作用于first所指元素,并将first递增,再将frist和last比较相等,如此持续下去,知道first等于last。

现在需要进行下面工作。给定一个储存整数的vector,以及一个整数值。如果此值存在于vector内,返回一个指针指向该值,否则返回0,表示此值不在vector内

int *find(vector<int> &ivec,int value)
{
for(int i=0;i<ivec.size();i++)
{
if(ivec[i]==value)
return &ivec[i];
}
return 0;
}

现在需要这个函数能够处理所有类型,前提该类型有定义的相等运算符

template<class T>
T *find(vector<T> &tvec,T value)
{
for(int i=0;i<tvec.size();i++)
{
if(tvec[i]==value)
return &tvec[i];
}
return 0;
}

最后

以上就是心灵美铃铛为你收集整理的c++学习心得:STL初学(基础篇)的全部内容,希望文章能够帮你解决c++学习心得:STL初学(基础篇)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部