首页 > 其他分享 >vector 简单应用

vector 简单应用

时间:2023-04-04 10:07:16浏览次数:41  
标签:begin end 元素 vector vec 应用 简单 排序


                                                Vector 简单应用

定义:

vector是C++标准模板库中的部分内容,中文偶尔译作"容器",但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

简单来说:简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

头文件: #include <vector>

定义:vector <data_type> vector_name;

       如:vector <int> v;

操作:

       v.empty()--             返回bool型,表示vector是否为空(v.empty() )

       v.size()--               返回vector内元素个数 (v.size() )

       v.push_back(data_typea)  将元素a插入最尾端

       v.pop_back()            将最尾端元素删除

vec.clear()               清空

       vec.insert(vec.begin()+i,a)在第i+1个元素前面插入a;

         vec.erase(vec.begin()+2);  删除第3个元素

vec.erase(vec.begin()+i,vec.end()+j) 删除区间[i,j-1];区间从0开始

 

       v[i] 类似数组取第i个位置的元素(v[0])

算法:

(1) 使用reverse将元素翻转:需要头文件#include<algorithm>

reverse(vec.begin(),vec.end());将元素翻转,即逆序排列!

(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含)

(2)使用sort排序:需要头文件#include<algorithm>,

sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).

可以通过重写排序比较函数按照降序比较,如下:

定义排序比较函数:

bool Comp(const int &a,const int &b)
{
    return a>b;
}


调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。

特别注意:

使用vector需要注意以下几点:

1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;点击看一下实例(一直超时)

2、Vector作为函数的参数或者返回值时,需要注意它的写法:

double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少!!!

 例题链接

 

标签:begin,end,元素,vector,vec,应用,简单,排序
From: https://blog.51cto.com/u_14932227/6167903

相关文章

  • 测试和调试 容器化Node应用
    TestingandDebuggingaContainerizedNodeapplicationIntroductionContainersingeneralandDockerinspecifichavechangedthewayhowwethinkaboutrunninganddeployingsoftwarequiteabit.Runninganapplicationinacontainerinsteadofdirectl......
  • 延迟加载(Lazy Loading)在C#中的应用
    延迟加载是一种常见的编程技术,它可以在需要时才加载数据或资源,而不是在程序启动时就加载。这种技术可以提高程序的性能和响应速度,因为它可以避免不必要的资源浪费。在C#中,延迟加载可以通过使用Lazy<T>类来实现。这个类是在.NETFramework4中引入的,它提供了一种简单的方法来实现......
  • 关于 Angular 应用部署时的 base-href 参数
    import{existsSync}from'fs';server.get(['/shop/*','/shop'],(req,res)=>{res.render(indexHtml,{req,providers:[{provide:APP_BASE_HREF,useValue:req.baseUrl}],});});server.set('views',distFo......
  • 关于 fontawesome 库在 Spartacus 项目中的应用
    FontAwesome是一个广受欢迎的开源图标库,它提供了一系列的图标和符号,可以在Web开发中方便地使用。它包含了大量的图标,如社交媒体图标、箭头、菜单图标、表单控件图标、设备图标、通知图标等等。FontAwesome的图标是以矢量方式呈现的,这意味着可以根据需要缩放和变换大小而不会......
  • 【快应用】视频如何根据网络状态播放和暂停
    【关键词】视频,网络,播放与暂停 【现象描述】如今丰富的流媒体时代需要消耗大量的流量,因此需要实现的功能是:在wifi环境下,可以实现视频的自动播放;切换到移动网络时,需要暂停视频播放,必须用户手动操作才能继续播放。 【实现方法】1、可以通过network.subscribe接口全局监听......
  • 【AGC】引入AGC插件SDK后应用出现中文名乱码问题
    【关键字】AGC、android、插件 【问题描述】开发者反馈应用集成了AGCAppLinking服务,在引入AGC插件时遇到了一些问题。引入AGC插件后应用的中文名出现乱码的问题,具体如下所述:在应用级的build.gradle中引入com.huawei.agconnect后应用中文名乱码1.在android/app/build.gradl......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-智能AI辅助写作从0到1快速入门——官网推荐的
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • Angular 应用里 server.ts 文件的 APP_BASE_HREF token 的用法?
    Angular应用里server.ts文件,下面这段代码的含义?server.get('*',(req,res)=>{res.render(indexHtml,{req,providers:[{provide:APP_BASE_HREF,useValue:req.baseUrl}],});});在Angular应用中,server.ts文件是用于构建服务器端渲染(S......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-智能AI写作从0到1快速入门——官网推荐的48种
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • Flutter和小程序容器技术的应用前景与发展潜力
    随着移动互联网的快速发展,应用程序已经成为人们生活中必不可少的一部分,而小程序和Flutter技术则是当前应用开发中备受瞩目的两大趋势。 小程序是一种轻量化的应用程序,其不需要用户下载安装即可使用,同时也具备了高效便捷的使用体验。而Flutter技术则是一种跨平台的应用开发技术......