vector<pair<int,int> >的插入排序,字符串中子字符串个数查找

关于pair的实现 刷LeetCode遇到一种数据结构:vector&lt;pair&lt;int ,int&gt;&gt;,对pair很好奇,了解到pair是一种struct,给出以下实现方式。 template&lt;class T1,class T2&gt; struct _pair { T1 first; T2 second; _pair(); _pair(T1 t1, T2 t2); _pai... 阅读详情

今天试了一下使用pair在vector中,没想到花了挺长时间的,先记录一下,免得以后忘记了。

题目大意是寻找一个字符串中含有的子字符串个数,根据出现的频率降序输出原来的字符串,同时若是频率相同,则按照原来的顺序输出,所以这里需要使用稳定排序。

往vector中插入pair的时候,使用make_pair<int,int>(cnt,ix)构建pair。

bool cmp(const pair<int, int> &a, const pair<int, int> &b)
{
    return a.first > b.first;         //降序排列
}
int main()
{
    vector<string> A;
    string C;
    string Q("qw");
    vector<string> B;
    vector<pair<int,int> > outA;
    for(int i=0; i<3; i++)
    {
        cin>>C;
        A.push_back(C);
    }
    for(vector<string>::size_type ix = 0; ix!=A.size(); ix++)
    {
        string::size_type pos = 0;
        unsigned int cnt = 0;
        //transform(A[ix].begin(),A[ix].end(),A[ix].begin(),::toupper);
        while ((pos = A[ix].find(Q, pos)) != string::npos)
        {
            ++cnt;         //统计出现次数
            pos=pos+Q.size();
        }
        outA.push_back(make_pair(cnt,ix));      // 插入pair的时候,使用make_pair<int,int>(cnt,ix)
    }
    stable_sort(outA.begin(),outA.end(),cmp); //稳定排序
    for(vector<int>::size_type ix = 0; ix!=outA.size(); ix++)
    {
        B.push_back(A[outA[ix].second]);
        cout<<B[ix]<<endl;
    }
}


Win10家庭版如何添加本地用户和组 在众多Windows版本中,Windows 10以其丰富的功能和卓越的性能吸引了大量用户。然而,对于使用Win10家庭版的用户来说,他们可能会遇到一些功能上的限制,特别是在用户和组管理方面。虽然家庭版在某些高级功能上有所缩减,但我们仍然可以通过一些技巧来实现对本地用户和组的管理。本文将详细介绍如何在Win10家庭版中添加本地用户和组,以便用户能够更好地管理计算机资源。 阅读详情

相关推荐

UniApp实战:5分钟搞定极光推送(JG-JPush)从配置到消息测试全流程

本文详细介绍了如何在UniApp中快速集成极光推送(JG-JPush),从基础配置到核心代码实现,再到双端调试技巧和高级功能扩展。通过5分钟全流程指南,开发者可以轻松实现消息推送功能,提升应用的用户触达率。

sat99的博客 682

vector<pair<int,int>>的使用及注意点(方法报错)

vector<pair<int,int>>用法 vector的这种用法有点类似于map。 与map不同的是: map会对插入的元素按键自动排序,而且不允许键重复。 vector的这种用法不会自动排序,而且允许重复。 map的基本用法:map的基本用法!!   注意点 在使用vector<pair<int,int>>时,可能会报以下错误: 没有对应方法 解决办法: 版本:Dev-C++ 4.8.1及以上 找到:工具- >编译选项- >程序

weixin_44915226的博客 3万+

保姆级教学:从0搭建微信小程序SpringBoot+Vue(一)

目标:实现一个微信小程序从后端数据库MySQL获取的商品展示页。 框架:后端采用SpringBoot,前端采用Vue,数据库MySQL。 部署工具:IntelliJ IDEA 2024.2专业版+HbuilderX+Node+微信开发者工具,jdk1.8已安装

weixin_44545610的博客 4925

vector<pair<int,int>> 的使用和sort排序

vector pair sort

星星之火 可以燎原 5279

【NVIDIA驱动的顽固问题】---- /dev/sdax:clean,xxx/xxx files,xxx/xxx blocks ---- 最全解决方法

本文的意义在于整理总结关于此问题的全部解决方法,希望能给大家节约时间。

lc1852109的博客 3127

STM32驱动HC-SR04超声波模块:两种精准测距方案详解

本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。

g5h6i的博客 684

vector<pair<int,int>>的一些问题

众所周知,往vector中插入元素有两个函数 push_back()和emplace_back() 他们俩的底层实现原理是不同的 push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);而 emplace_back() 在实现时,则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。 添加pair对时,下列两个方法都可以 for (int i = 0; i < n; ++i.

qq_45952394的博客 1447

Power Bi数据分析案例:在线零售平台销售数据分析

该数据集为,涵盖2023年1月至2024年3月,包含用户群体特征、购买行为、产品偏好以及参与度指标。用户维度:Customer_ID,Age,Gender,City产品维度:Product_Category,Unit_Price事实表:Order_ID,Quantity,Total_Amount,Discount_Amount,Rating,Delivery_Time在Power Query当中处理销售日期列,并新增年龄段、浏览页面分段列。

2301_79586168的博客 1278

vector函数里的pair用法

  STL中map通过键-值的形式保证一一对应关系,而multimap则可以出现一对多的关系,这两种数据类型在存储数据时,会根据pair&lt;&gt;的first成员进行排序,不同的是前者将不会插入对first成员重复的结构,而后者可以。 而当我们我们只想存储pair对,不需要对其排序时,就可以用到vector,将pair对插入其中即可。下面就使用做一些简单说明: 声明vector:vec...

zrh_优快云的博客 6827

OpenCV 常用的API总结(迅速查询)

OpenCV基本操作 openCV安装 读取图片(IO操作) 绘制集合图形 图像加法以及混合操作 OpenCV图像处理 图像几何变换 形态学操作 图像平滑 直方图 边缘检测 模板匹配 傅里叶变换 轮廓检测 图像分割 图像特征提取 SIFT检测关键点 视频读写............

Peyzhang的博客 3936

arcgis插件 批量出图 按地块批量出图工具(动态文本、动态节点坐标表)

arcgis插件 批量出图 按地块批量出图工具。

坐听风雨 7065

利用vector实现一对一(pair<int,int>)

一:前言 我们知道有一对一的STL容器有map容器,但是map容器中的按键值排序和不允许由重复的元素,现在,我们可以利用 vector<pair<int,int> >来实现一对一,但其没有排序可以允许有重复的元素 二:演示 #include<bits/stdc++.h> using namespace std; int main(){ vector<pair<int,int> >v; vector<pair<int,int&g

qq_48508278的博客 3140

广东省道路工程检测练习试题(判断题)真题

按下式计算小于某粒径颗粒质量百分数:X=(A/B)x100( )49.、挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测。95.挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测( )107.以干密度 pd 为纵坐标,含水率w为横坐标,绘 pd-w 关系曲线,曲线上峰值点的纵、横坐标分别为最大干密度和最佳含水率( )

ZShy001238的博客 684

【C++】CSP-J2021复赛做题思路与策略

第一题(分糖果):纯数学规律,找到取模的最大值,代码极短。第二题(插入排序):利用修改次数少的特性,维护有序序列,体现了“暴力优化”的思想。第三题(网络连接):字符串处理 + 简单模拟,难点在于地址合法性检查要全面,不能漏掉前导零、格式、范围等。考试策略:第一题必须稳拿;第二题如果想不到优化,至少可以写暴力拿部分分(数据范围小的点);第三题先把简单的检查写出来,拿前几档的分,时间充裕再补全所有检查。合理分配,分数最大化。最后祝考生们复习顺利!:P。

一个啥都不会的小初(中)生(虽然马上就不是了)的C++学习笔记 286

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【学习笔记】【C++】【Leetcode 分门别类讲解】

目录概述一、时间复杂度分析二、数组问题。 概述 一、时间复杂度分析 图的遍历:邻接表实现 :O(e+V) ;邻接矩阵实现O(e2) ;e为节点数,V为边数。 字符串数组,先对字符串排顺序,再将数组按照字典序排序:时间复杂度:O( nslogs+snlogn),因为排序n个字符串+n个字符串的排序(字符串也得遍历一遍) 均摊时间复杂度问题: 对动态数组的扩容和缩容来说,均摊下去时间复杂度只是O(1);所以造成动态数组的操作,整体的均摊时间复杂度为O(1); 但是要注意用lazy resize,避免复杂

多丰富下自己呀 1596

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Map函数与vector<pair<int,int>>函数的使用方法

map 在插入元素时,通过比较键(key)的大小进行排序,实现二叉树自平衡。使用方式和map一致,但其支持重复的键,在插入时不允许使用数组方式的插入,也就是上文方法中添加数据的第4种方式。1.要注意end方法,其放回的并不是最后一个元素的指针,而是最后一个元素后一位的指针。11.resize 改变当前使用数据的大小,如果它比当前使用的大,则填充默认值。vector<pair<int,int>> 可以使用vector的方法;如果想使用相同的键,那么就要使用 multimap,其可以存放相同的键。

沐凡星的博客 1608

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C++:vector中pair的排序方法

C++:vector中pair的排序方法

hhd1988的专栏 2291

C++常用stl

排序时会默认按第一个元素升序排序。pair相当于存储一个二元组。邻接表存图(无权值)邻接表存图(有权值)

weixin_62988040的博客 340

C++ vector中使用pair

vector<pair<int,int> > #include<bits/stdc++.h> using namespace std; int main() { vector<pair<int, int>> vec; vec.emplace_back(make_pair(1,2)); cout<<...

salmonwilliam的博客 3202

vector<pair<int,int> >的排序

策策学长找py #include<bits/stdc++.h> using namespace std; int main(){ int t,n,m,k,x,y; cin>>t; while(t--){ cin>>n>>m>>k; vector<pair<int,int> > v; while(k--){ cin>>x

Cieu的博客 1249

C++ vector 自定义排序规则(vector<vector<int>>、vector<pair<int,int>>)

平时的编译器里面自己写的时候 cmp函数前面加不加static都行,但是leetcode刷题时,代码还有实现都是写在类里面的,cmp函数前面一定要加上static修饰。因此建议所有的返回类型都为static bool 类型。这里不能使用C++11中的auto关键词进行自动类型推导C++ sort函数自定义cmp函数中参数带&符号//如果第一元素相等,则比较第二元素。

hero_th的博客 1万+

(ACM) C++ STL 之vector常见用法

STL是简单效率不错的工具,尤其几种容器都蛮方便的,掌握好能发挥不错的威力。让你更多的时间去思考解题思路,而不是每次都要写奇奇怪怪的代码模拟简单的功能,让整体代码变的臃肿,想象一下不可能每次排序要自己写把。 总得来说看能使代码思路清晰,简洁。所以我们很有必须学习和掌握基本的STL使用方法。 这里先总结下vector常用的用法。 为了使用vector 首先: #include /

寻梦道理的专栏 1598

C++ pair 型用法

C++ pair型 pair 是 一种模版类型。每个pair 可以存储两个值。 如果一个函数有两个返回值并且是不同类型,一种方法是写个struct ,但为了方便可以使用 c++ 自带的pair型 ,返回一个pair 。 另外,在一个对象有多个属性时 ,一般使用struct ,但是如果只有两个属性的时候,就可以用pair 进行操作。。。 如果有三个属性的话,其实也是可以用pair 。。。

QAQ 1272

C++:vector里插入pair

C++:vector里插入pair

hhd1988的专栏 1628

邻接表 `vector<pair<int, int>>` 超详细完整版笔记

邻接表使用vector<pair<int,int>>存储图结构,基础定义为静态数组graph[MAXN],每个元素graph[u]存储从节点u出发的出边(终点v和边权w)。支持有向图、无向图、重边和自环,存储顺序严格按输入顺序。内存布局为块内连续、块间离散,数据存储在堆上。遍历方式灵活,支持正反向遍历。邻接表相比邻接矩阵更节省空间(O(m)),适合稀疏图,但查询边需O(deg(u))时间。常见操作包括建图、遍历、查询、修改、排序和去重,需注意无向图需存双向边、节点越界和栈溢出等问题。

ab123768的博客 435
上一篇: 关于C++的getline换行符的问题
下一篇: int ,long , long long的最大最小值
小威学长
博客等级 码龄12年 22粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值