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

网站排名怎么做 site中国联通网站建设与维护

网站排名怎么做 site,中国联通网站建设与维护,wordpress怎么修改模板,html5网站正在建设中本专栏记录C学习过程包括C基础以及数据结构和算法#xff0c;其中第一部分计划时间一个月#xff0c;主要跟着黑马视频教程#xff0c;学习路线如下#xff0c;不定时更新#xff0c;欢迎关注。 当前章节处于#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战… 本专栏记录C学习过程包括C基础以及数据结构和算法其中第一部分计划时间一个月主要跟着黑马视频教程学习路线如下不定时更新欢迎关注。 当前章节处于 ---------第1阶段-C基础入门 ---------第2阶段实战-通讯录管理系统 ---------第3阶段-C核心编程 ---------第4阶段实战-基于多态的企业职工系统 第5阶段-C提高编程 ---------第6阶段实战-基于STL泛化编程的演讲比赛 ---------第7阶段-C实战项目机房预约管理系统 文章目录 一、deque容器1.1 deque容器基本概念1.2 deque构造函数1.3 deque赋值操作1.4 deque大小操作1.5 deque 插入和删除1.6 deque 数据存取1.7 deque 排序 二、 stack容器2.1 stack 基本概念2.2 stack 常用接口 三、 queue 容器3.1 queue 基本概念3.2 queue 常用接口 一、deque容器 1.1 deque容器基本概念 功能 双端数组可以对头端进行插入删除操作 deque与vector区别 vector对于头部的插入删除效率低数据量越大效率越低deque相对而言对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关 deque内部工作原理: deque内部有个中控器维护每段缓冲区中的内容缓冲区中存放真实数据 中控器维护的是每个缓冲区的地址使得使用deque时像一片连续的内存空间 deque容器的迭代器也是支持随机访问的 1.2 deque构造函数 功能描述 deque容器构造 函数原型 dequeT deqT; //默认构造形式deque(beg, end); //构造函数将[beg, end)区间中的元素拷贝给本身。deque(n, elem); //构造函数将n个elem拷贝给本身。deque(const deque deq); //拷贝构造函数 示例 #include dequevoid printDeque(const dequeint d) {for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {cout *it ;}cout endl; } //deque构造 void test01() {dequeint d1; //无参构造函数for (int i 0; i 10; i){d1.push_back(i);}printDeque(d1);dequeint d2(d1.begin(),d1.end());printDeque(d2);dequeintd3(10,100);printDeque(d3);dequeintd4 d3;printDeque(d4); }int main() {test01();system(pause);return 0; }0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 请按任意键继续. . .总结 deque容器和vector容器的构造方式几乎一致灵活使用即可 1.3 deque赋值操作 功能描述 给deque容器进行赋值 函数原型 deque operator(const deque deq); //重载等号操作符 assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。 assign(n, elem); //将n个elem拷贝赋值给本身。 示例 #include dequevoid printDeque(const dequeint d) {for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {cout *it ;}cout endl; } //赋值操作 void test01() {dequeint d1;for (int i 0; i 10; i){d1.push_back(i);}printDeque(d1);dequeintd2;d2 d1;printDeque(d2);dequeintd3;d3.assign(d1.begin(), d1.end());printDeque(d3);dequeintd4;d4.assign(10, 100);printDeque(d4);}int main() {test01();system(pause);return 0; } 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 100 100 100 100 100 100 100 100 100 100 请按任意键继续. . .总结deque赋值操作也与vector相同需熟练掌握 1.4 deque大小操作 功能描述 对deque容器的大小进行操作 函数原型 deque.empty(); //判断容器是否为空 deque.size(); //返回容器中元素的个数 deque.resize(num); //重新指定容器的长度为num,若容器变长则以默认值填充新位置。 ​ //如果容器变短则末尾超出容器长度的元素被删除。 deque.resize(num, elem); //重新指定容器的长度为num,若容器变长则以elem值填充新位置。 ​ //如果容器变短则末尾超出容器长度的元素被删除。 示例 #include dequevoid printDeque(const dequeint d) {for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {cout *it ;}cout endl; }//大小操作 void test01() {dequeint d1;for (int i 0; i 10; i){d1.push_back(i);}printDeque(d1);//判断容器是否为空if (d1.empty()) {cout d1为空! endl;}else {cout d1不为空! endl;//统计大小cout d1的大小为 d1.size() endl;}//重新指定大小d1.resize(15, 1);printDeque(d1);d1.resize(5);printDeque(d1); }int main() {test01();system(pause);return 0; } 0 1 2 3 4 5 6 7 8 9 d1不为空! d1的大小为10 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 0 1 2 3 4 请按任意键继续. . .总结 deque没有容量的概念判断是否为空 — empty返回元素个数 — size重新指定个数 — resize 1.5 deque 插入和删除 功能描述 向deque容器中插入和删除数据 函数原型 两端插入操作 push_back(elem); //在容器尾部添加一个数据push_front(elem); //在容器头部插入一个数据pop_back(); //删除容器最后一个数据pop_front(); //删除容器第一个数据 指定位置操作 insert(pos,elem); //在pos位置插入一个elem元素的拷贝返回新数据的位置。 insert(pos,n,elem); //在pos位置插入n个elem数据无返回值。 insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据无返回值。 clear(); //清空容器的所有数据 erase(beg,end); //删除[beg,end)区间的数据返回下一个数据的位置。 erase(pos); //删除pos位置的数据返回下一个数据的位置。 示例 #include dequevoid printDeque(const dequeint d) {for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {cout *it ;}cout endl; } //两端操作 void test01() {dequeint d;//尾插d.push_back(10);d.push_back(20);//头插d.push_front(100);d.push_front(200);printDeque(d);//尾删d.pop_back();//头删d.pop_front();printDeque(d); }//插入 void test02() {dequeint d;d.push_back(10);d.push_back(20);d.push_front(100);d.push_front(200);printDeque(d);d.insert(d.begin(), 1000);printDeque(d);d.insert(d.begin(), 2,10000);printDeque(d);dequeintd2;d2.push_back(1);d2.push_back(2);d2.push_back(3);d.insert(d.begin(), d2.begin(), d2.end());printDeque(d);}//删除 void test03() {dequeint d;d.push_back(10);d.push_back(20);d.push_front(100);d.push_front(200);printDeque(d);d.erase(d.begin());printDeque(d);d.erase(d.begin(), d.end());d.clear();printDeque(d); }int main() {//test01();//test02();test03();system(pause);return 0; } 200 100 10 20 100 10 20请按任意键继续. . .总结 插入和删除提供的位置是迭代器尾插 — push_back尾删 — pop_back头插 — push_front头删 — pop_front 1.6 deque 数据存取 功能描述 对deque 中的数据的存取操作 函数原型 at(int idx); //返回索引idx所指的数据operator[]; //返回索引idx所指的数据front(); //返回容器中第一个数据元素back(); //返回容器中最后一个数据元素 示例 #include dequevoid printDeque(const dequeint d) {for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {cout *it ;}cout endl; }//数据存取 void test01() {dequeint d;d.push_back(10);d.push_back(20);d.push_front(100);d.push_front(200);for (int i 0; i d.size(); i) {cout d[i] ;}cout endl;for (int i 0; i d.size(); i) {cout d.at(i) ;}cout endl;cout front: d.front() endl;cout back: d.back() endl;}int main() {test01();system(pause);return 0; } 200 100 10 20 200 100 10 20 front:200 back:20 请按任意键继续. . .总结 除了用迭代器获取deque容器中元素[ ]和at也可以front返回容器第一个元素back返回容器最后一个元素 1.7 deque 排序 功能描述 利用算法实现对deque容器进行排序 算法 sort(iterator beg, iterator end) //对beg和end区间内元素进行排序 示例 #include deque #include algorithmvoid printDeque(const dequeint d) {for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {cout *it ;}cout endl; }void test01() {dequeint d;d.push_back(10);d.push_back(20);d.push_front(100);d.push_front(200);printDeque(d);sort(d.begin(), d.end());printDeque(d);}int main() {test01();system(pause);return 0; }总结sort算法非常实用使用时包含头文件 algorithm即可 200 100 10 20 10 20 100 200 请按任意键继续. . .实战案例-评委打分 有5名选手选手ABCDE10个评委分别对每一名选手打分去除最高分去除评委中最低分取平均分。 实现步骤 创建五名选手放到vector中遍历vector容器取出来每一个选手执行for循环可以把10个评分打分存到deque容器中sort算法对deque容器中分数排序去除最高和最低分deque容器遍历一遍累加总分获取平均分 #include iostream using namespace std; #includevector #includedeque #includealgorithm // 创建选手类 class Person { public:Person(string name,int score) {this-m_name name;this-aver_score score;}string m_name;int aver_score 0; }; void createPerson(vectorPersonv) {string nameSeed ABCDE;for (int i 0; i nameSeed.size(); i) {string name 选手;name nameSeed[i];int score 0;Person p(name, score);v.push_back(p); // 把创建的对象放入容器中} } // 添加分 void setScore(vectorPerson v) {for (vectorPerson::iterator it v.begin(); it ! v.end(); it) {// 评委打分存在deque容器中排序后去除最低分和最高分dequeint d;for (int i 0; i 10; i) {int score rand() % 41 60; // 60-100d.push_back(score);}sort(d.begin(), d.end());// 去除最高分和最低分d.pop_back();d.pop_front();// 计算平均分float average 0;for (int j 0; j 8; j) {average d[j];}(*it).aver_score (average / 8);} } // 打印信息 void showdata(vectorPerson v) {for (vectorPerson::iterator it v.begin(); it ! v.end(); it) {cout 姓名 (*it).m_name 平均分 (*it).aver_score endl;} } int main() {//随机数种子srand((unsigned int)time(NULL));//1、创建5名选手vectorPersonv; //存放选手容器createPerson(v);//2、给5名选手打分setScore(v);//3、显示最后得分showdata(v);system(pause);return 0;} 姓名选手A 平均分78 姓名选手B 平均分76 姓名选手C 平均分79 姓名选手D 平均分79 姓名选手E 平均分76 请按任意键继续. . .总结 选取不同的容器操作数据可以提升代码的效率 二、 stack容器 2.1 stack 基本概念 概念stack是一种先进后出(First In Last Out,FILO)的数据结构它只有一个出口 栈中只有顶端的元素才可以被外界使用因此栈不允许有遍历行为 栈中进入数据称为 — 入栈 push 栈中弹出数据称为 — 出栈 pop 2.2 stack 常用接口 功能描述栈容器常用的对外接口 构造函数 stackT stk; //stack采用模板类实现 stack对象的默认构造形式stack(const stack stk); //拷贝构造函数 赋值操作 stack operator(const stack stk); //重载等号操作符 数据存取 push(elem); //向栈顶添加元素pop(); //从栈顶移除第一个元素top(); //返回栈顶元素 大小操作 empty(); //判断堆栈是否为空size(); //返回栈的大小 示例 #include stack//栈容器常用接口 void test01() {//创建栈容器 栈容器必须符合先进后出stackint s;//向栈中添加元素叫做 压栈 入栈s.push(10);s.push(20);s.push(30);while (!s.empty()) {//输出栈顶元素cout 栈顶元素为 s.top() endl;//弹出栈顶元素s.pop();}cout 栈的大小为 s.size() endl;}int main() {test01();system(pause);return 0; } 栈顶元素为 30 栈顶元素为 20 栈顶元素为 10 栈的大小为0 请按任意键继续. . .总结 入栈 — push出栈 — pop返回栈顶 — top判断栈是否为空 — empty返回栈大小 — size 三、 queue 容器 3.1 queue 基本概念 概念Queue是一种先进先出(First In First Out,FIFO)的数据结构它有两个出口 队列容器允许从一端新增元素从另一端移除元素 队列中只有队头和队尾才可以被外界使用因此队列不允许有遍历行为 队列中进数据称为 — 入队 push 队列中出数据称为 — 出队 pop 3.2 queue 常用接口 功能描述栈容器常用的对外接口 构造函数 queueT que; //queue采用模板类实现queue对象的默认构造形式queue(const queue que); //拷贝构造函数 赋值操作 queue operator(const queue que); //重载等号操作符 数据存取 push(elem); //往队尾添加元素pop(); //从队头移除第一个元素back(); //返回最后一个元素front(); //返回第一个元素 大小操作 empty(); //判断堆栈是否为空size(); //返回栈的大小 示例 #include queue #include string class Person { public:Person(string name, int age){this-m_Name name;this-m_Age age;}string m_Name;int m_Age; };void test01() {//创建队列queuePerson q;//准备数据Person p1(唐僧, 30);Person p2(孙悟空, 1000);Person p3(猪八戒, 900);Person p4(沙僧, 800);//向队列中添加元素 入队操作q.push(p1);q.push(p2);q.push(p3);q.push(p4);//队列不提供迭代器更不支持随机访问 while (!q.empty()) {//输出队头元素cout 队头元素-- 姓名 q.front().m_Name 年龄 q.front().m_Age endl;cout 队尾元素-- 姓名 q.back().m_Name 年龄 q.back().m_Age endl;cout endl;//弹出队头元素q.pop();}cout 队列大小为 q.size() endl; }int main() {test01();system(pause);return 0; } 总结 入队 — push出队 — pop返回队头元素 — front返回队尾元素 — back判断队是否为空 — empty返回队列大小 — size
http://www.zqtcl.cn/news/937576/

相关文章:

  • 企业网站模板下载网站模板下载做一个购物商城网站多少钱
  • 网站开发有哪些服务推荐电子商务网站建设
  • 网站交互技术网站框架类型
  • 国内网站建设公司top20对软件开发的理解和认识
  • 一键生成网站前端开发用什么语言
  • pc 网站建设苏州seo网站诊断
  • 江苏盐城建筑公司网站seo专员的工作内容
  • 做网站内容腾讯云wordpress教程
  • 如何建设 linux 网站旅游区网站开发
  • 云南网站设计哪家好wordpress 右边栏
  • 服务器网站部署端口配置网站,商城,app+建设
  • 如何做公司网站优化装修店铺
  • 网站开发中常见的安全漏洞卢松松博客源码 wordpress博客模板
  • 美妆销售网站开发的目的东莞营销网站
  • 企业网站管理系统使用教程域名到期 网站打不开
  • 长春网站建设哪家专业国外免备案域名
  • 网站后台上传图片做难吗网站特效怎么做的
  • 泉州网站优化lamp环境做网站
  • 设计常用网站网站常见程序问题
  • 做网站竟然不知道cms如何添加网站图标
  • 东莞阳光网站官网缘魁上海网站建设
  • 山西孝义网站开发平面设计类网站有哪些
  • 手机版怎么做微电影网站青岛网站设计定制
  • 部队织梦网站模板免费下载红河网站建设代理
  • 网站开发学院网页制作模板html图片
  • 企业门户网站模板html上线网站备案和实名认证
  • 抖音代运营内容seo职业规划
  • dedecms网站制作教程做网站买好域名怎么办
  • 网站建立于网页设计ai网站设计
  • 青海省建设工程造价网站电商设计网站培训