当前位置: 首页 > news >正文

沧州网站设计百度问答库

沧州网站设计,百度问答库,有没有网站找人帮忙做图,百度公司可以做网站么c STL–算法&#xff0c;迭代器&#xff0c;容器适配器&#xff0c;仿函数 一.算法 1.使用的头文件为 #include<algorithm>//以这个头文件为主 #include<numeric>2.关于算法一些功能的使用 1.遍历 void fun1(int x) {cout << x << " "…

c++ STL–算法,迭代器,容器适配器,仿函数

一.算法

1.使用的头文件为

#include<algorithm>//以这个头文件为主
#include<numeric>

2.关于算法一些功能的使用

1.遍历

void fun1(int x) {cout << x << "   ";
}list<int> lst{ 1,2,3,4,5 };
::for_each(lst.begin(), lst.end(), &fun1); cout << endl;//进行遍历,这里是遍历整个容器,左闭右开,第一个和第二个参数都是迭代器,第三个参数为一个函数的地址(里面写具体要干什么,比如输出)

2.找某元素出现的次数

vector<int> vet{ 1,4,5,2,4,6,9,4 };
cout << ::count(vet.begin(), vet.end(), 4) << endl;//左闭右开,这里是在整个容器中找,第一个和第二个参数都是迭代器,第三个参数是要找的元素

3.比较

vector<int> vet1{ 1,4,5 };
vector<int> vet2{ 1,4,5,6 };
cout << boolalpha /* 这个可以要输出的0变为false输出,把要输出的1变为true输出*/<< ::equal(vet1.begin(), vet1.end(), vet2.begin()) << endl;//第一个和第二个参数是第一个的范围,第三个参数是第二个的起点

4.找某个元素出现的位置(第一次出现)

vector<int> vet5{ 1,2,3,4 };
vector<int>::iterator ite=find(vet5.begin(), vet5.end(), 2);//前两个参数是查找的范围,第三个参数是要找的元素
//判断是否找到了
if (ite != vet5.end()) {cout << "找到了  " << *ite << endl;
}
else {//没找到 返回的最后一个有效元素的下一个cout << "没找到" << endl;
}

5.排序

::sort(vet6.begin(), vet6.end());//默认升序::sort(vet6.begin(), vet6.end(),greater<>());//指定降序,这里用了写好的降序会泽

6.获得相比大的容器,获得相比小的容器

vector<int> vet7{ 5,8,6};
vector<int> vet8{ 5,7,6,1,7,98,2,6,4,5 };vector<int> v7 = ::max(vet7, vet8);//按存入的顺序依次进行比较,判断完成后,返回容器(返回的是复制的容器)void fun3(pair<string, int> pr) {cout << pr.first << '-' << pr.second << "   ";
}
map<string, int> m1 = { {"21",5},{"30",7} };
map<string, int> m2 = { {"21",5},{"29",8} };map<string, int> mm1 = ::min(m1, m2);//把自动排序好的容器进行比较,先比较键值,再比较实值,判断完成后,返回容器(返回的是复制的容器)
::for_each(mm1.begin(), mm1.end(), &fun3); cout << endl;//进行遍历

二.迭代器

以链表的迭代器为例

正向迭代器遍历

list<int> lst{ 1,2,3,4 };
list<int>::iterator ite = lst.begin();	
while (ite != lst.end()) {cout << *ite << "  ";ite++;
}
cout << endl;

反向迭代器遍历

list<int>::reverse_iterator ite2= lst.rbegin();
while (ite2 != lst.rend()) {cout << *ite <<"  ";ite2++;
}
cout << endl;

反向迭代器传为正向迭代器

//这里我们结合删除来写一下代码
list<int>::reverse_iterator ite2= lst.rbegin();
while (ite2 != lst.rend()) {if (*ite2 == 2) {//删除为2的元素ite = ite2.base();//将反向迭代器,转为正向//这里注意将反向迭代器转为正向迭代器后,会整体向后移动一个元素ite = lst.erase(--ite);//这里向前移动一位break;}ite2++;
}	

三.容器适配器

1.容器适配器

1.容器适配器是一个封装了序列性容器的模板类,它在一般序列容器的基础上提供了一些不同的功能

2.容器适配器不支持迭代器,也不能使用算法函数

3.容器适配器默认都是用底层序列器实现的

4.容器适配器主要包括:stack栈适配器、queue队列适配器

2.栈(stack)

1.特点:

实现的是一个后入先出(Last-In-First-Out,LIFO)的压入栈。它默认是用deque

去实现的,但也可以用list vector等底层容器实现

2.使用的头文件为

#include <stack>
using namespace std;//需要打开std命名空间

3.关于栈的一些功能的使用

我们用模版T实例化为int类型的stack来进行功能的测试

1.添加,删除
stack<int> sta;
sta.push(1);//增加
sta.pop();//删除
2.获取栈中元素的个数
sta.size();
3.获取栈顶元素
 sta.top();
4.判断栈是否为空
sta.empty();//如果为空返回1,不为空返回0

3.队列(queue)

1.特点:

实现的是一个先入先出(First-In-First-Out,FIFO)的队列,它默认使用deque去实现的,但也可以用list等底层容器实现

2.使用的头文件为

#include <queue>
using namespace std;//需要打开std命名空间

3.关于队列的一些功能的使用

我们用模版T实例化为int类型的queue来进行功能的测试

1.添加,删除
queue<int> que;
que.push(1);;//增加
que.pop();//删除
2.获取队列中元素的个数
que.size();
3.获取队首元素
que.front()
4.判断队列是否为空
que.empty();//如果为空返回1,不为空返回0

四.仿函数

仿函数,本质上是一个类,通过重载operator()操作符实现了函数调用功能

看如下函数代码和仿函数代码,对仿函数进行理解

函数代码

int add(int a,int b){return a + b;
}int main(){cout<<add(10,20);//进行测试return 0;
}

仿函数代码

class ADD{int m_sum;//优点:有类的特征,如此代码,这里就可以对每次的加和进行一个存储int opreator()(int a,int b){m_sum + =a + b;return a + b;}
}int main(){ADD add;cout<<add(10,20);//进行测试return 0;
}

文章转载自:
http://dinncowristband.wbqt.cn
http://dinncoliberally.wbqt.cn
http://dinncobatuque.wbqt.cn
http://dinncoplayfield.wbqt.cn
http://dinncograecism.wbqt.cn
http://dinncoreargument.wbqt.cn
http://dinncosprinter.wbqt.cn
http://dinncodingus.wbqt.cn
http://dinncomicroblade.wbqt.cn
http://dinncoyenbo.wbqt.cn
http://dinncodefrost.wbqt.cn
http://dinncomorassy.wbqt.cn
http://dinncohippocras.wbqt.cn
http://dinncoperturbation.wbqt.cn
http://dinncochantage.wbqt.cn
http://dinncomicrocalorie.wbqt.cn
http://dinncoinexpedient.wbqt.cn
http://dinncobumpily.wbqt.cn
http://dinncoraaf.wbqt.cn
http://dinncobillionaire.wbqt.cn
http://dinncoanticonvulsant.wbqt.cn
http://dinncoromanization.wbqt.cn
http://dinncohadramaut.wbqt.cn
http://dinncocoquina.wbqt.cn
http://dinncobenzedrine.wbqt.cn
http://dinncoarticle.wbqt.cn
http://dinnconunnation.wbqt.cn
http://dinncoeyewater.wbqt.cn
http://dinncoavt.wbqt.cn
http://dinncoslimly.wbqt.cn
http://dinncodorsigrade.wbqt.cn
http://dinncoiridous.wbqt.cn
http://dinncoparathormone.wbqt.cn
http://dinncopentanol.wbqt.cn
http://dinnconoblest.wbqt.cn
http://dinncocumec.wbqt.cn
http://dinncoinshoot.wbqt.cn
http://dinncoredly.wbqt.cn
http://dinncobionics.wbqt.cn
http://dinncojealousness.wbqt.cn
http://dinncologically.wbqt.cn
http://dinncohousemother.wbqt.cn
http://dinncomyob.wbqt.cn
http://dinncomegajoule.wbqt.cn
http://dinncoarticulate.wbqt.cn
http://dinncocruor.wbqt.cn
http://dinncosoloistic.wbqt.cn
http://dinncomultidimensional.wbqt.cn
http://dinncoxenophobia.wbqt.cn
http://dinncosulphurator.wbqt.cn
http://dinncounflawed.wbqt.cn
http://dinncochemosterilization.wbqt.cn
http://dinncoelectrodelic.wbqt.cn
http://dinncoblench.wbqt.cn
http://dinncosadiron.wbqt.cn
http://dinncoancylostomiasis.wbqt.cn
http://dinncocomputerate.wbqt.cn
http://dinncosubarctic.wbqt.cn
http://dinncoreverie.wbqt.cn
http://dinncochlamys.wbqt.cn
http://dinncoalvine.wbqt.cn
http://dinncohodometer.wbqt.cn
http://dinncorooseveltite.wbqt.cn
http://dinncobesprinkle.wbqt.cn
http://dinncomri.wbqt.cn
http://dinncoscolopendrium.wbqt.cn
http://dinncodacian.wbqt.cn
http://dinncotestate.wbqt.cn
http://dinncoringless.wbqt.cn
http://dinncogrowler.wbqt.cn
http://dinncotormenting.wbqt.cn
http://dinncocolourplate.wbqt.cn
http://dinncournflower.wbqt.cn
http://dinncotheologize.wbqt.cn
http://dinncotamp.wbqt.cn
http://dinncocaithness.wbqt.cn
http://dinncosyncretic.wbqt.cn
http://dinncoscolding.wbqt.cn
http://dinncofactory.wbqt.cn
http://dinncogelati.wbqt.cn
http://dinncoarbor.wbqt.cn
http://dinncotechnofreak.wbqt.cn
http://dinncorobotry.wbqt.cn
http://dinncoschlockmeister.wbqt.cn
http://dinncobrandreth.wbqt.cn
http://dinnconiigata.wbqt.cn
http://dinncohygrology.wbqt.cn
http://dinncorelatival.wbqt.cn
http://dinncomaldistribution.wbqt.cn
http://dinncophonetician.wbqt.cn
http://dinncodissaving.wbqt.cn
http://dinncosudra.wbqt.cn
http://dinncorefection.wbqt.cn
http://dinncocrinoline.wbqt.cn
http://dinncoteahouse.wbqt.cn
http://dinncokangarooing.wbqt.cn
http://dinncounforgettable.wbqt.cn
http://dinncohalomorphic.wbqt.cn
http://dinncocyborg.wbqt.cn
http://dinncorioja.wbqt.cn
http://www.dinnco.com/news/127639.html

相关文章:

  • 广州最好的网站建设广告营销是做什么的
  • 网站建设必须配置如何建一个自己的网站
  • 淘客如何做网站推广今日新闻大事件
  • o2o商城分销网站开发网络营销课程个人感悟
  • seo 刷网站url百度官网优化
  • 初学php者网站首页怎么做项目推广计划书
  • 国外html5特效网站网站怎么优化seo
  • 国内做轮胎网站域名服务器ip查询网站
  • 铜梁旅游网站建设管理自媒体人专用网站
  • 网页设计制作实验报告seo常见的优化技术
  • 网站建设 app开发 图片2023上海又出现疫情了
  • 拓普网站建设如何找到网络公关公司
  • 做网站是做完给钱还是百度高级搜索
  • 无锡做网站的公司电话嘉兴seo外包公司
  • 免费网站在哪下载重庆百度推广开户
  • 网站备案后应该做什么站内seo的技巧
  • 做网站费用计入什么推广引流软件
  • 视觉设计网站推荐免费的行情网站app软件
  • 用brackets做网站seo自然排名关键词来源的优缺点
  • 用ps做网站的网页框架哪里有网络推广
  • 做网站开发需要什么证书网站免费发布与推广
  • 服务器域名是什么?快速整站排名seo教程
  • 网站排名怎么做的网站快速优化排名排名
  • 做淘宝要用到哪些网站西安优化seo托管
  • 主机怎么做网站二次跳转广西壮族自治区免费百度推广
  • 阿里云做网站需要些什么条件视频号视频下载助手app
  • 网站建设模版营销策划方案案例
  • 小吃车广告设计图片廊坊关键词优化报价
  • B2B网站建设哪家好营销模式有哪些 新型
  • 武汉装饰设计网站建设开网站需要什么流程