解析形如(k,v)(k,v)(k,v)字符串
有时根据需要会将map数据格式化成(k,v)(k,v)(k,v)……字符串,之后需要还原,下面代码实现了还原过程
1 void SplitString(const string& s, vector<string>& v, const string& c)
2 {
3 string::size_type pos1, pos2;
4 pos2 = s.find(c);
5 pos1 = 0;
6 while(string::npos != pos2)
7 {
8 v.push_back(s.substr(pos1, pos2-pos1));
9
10 pos1 = pos2 + c.size();
11 pos2 = s.find(c, pos1);
12 }
13 if(pos1 != s.length())
14 v.push_back(s.substr(pos1));
15 }
16
17 //格式是:(k,v)(k,v)(k,v)
18 void ParseAttribute(string strAttr, map<string,string>& attr)
19 {
20 if (strAttr.empty())
21 {
22 return ;
23 }
24 vector<string> v;
25 SplitString(strAttr, v, ")");
26 for (int i = 0; i < v.size(); ++i)
27 {
28 string str = v[i];
29 str.erase(str.begin(), str.begin() + str.find('(') + 1);
30 vector<string> v1;
31 SplitString(str, v1, ",");
32 if ((v1.size() != 2) || (v1[0].empty()))
33 {
34 continue;
35 }
36
37 attr.insert(make_pair(v1[0], v1[1]));
38 }
39 }
解析形如(k,v)(k,v)(k,v)字符串的更多相关文章
- 机器学习 —— 基础整理(三)生成式模型的非参数方法: Parzen窗估计、k近邻估计;k近邻分类器
本文简述了以下内容: (一)生成式模型的非参数方法 (二)Parzen窗估计 (三)k近邻估计 (四)k近邻分类器(k-nearest neighbor,kNN) (一)非参数方法(Non-param ...
- [LeetCode] Top K Frequent Words 前K个高频词
Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted b ...
- [Swift]LeetCode373. 查找和最小的K对数字 | Find K Pairs with Smallest Sums
You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Define ...
- SCU 4313 把一棵树切成每段K个点 (n%k)剩下的点不管
题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=4313 判断是不是存在拆图得到新连通分支的点个数是K的倍数 注意一个点所连的边只能被切一条 # ...
- 第K短路+严格第K短路
所谓K短路,就是从s到t的第K短的路,第1短就是最短路. 如何求第K短呢?有一种简单的方法是广度优先搜索,记录t出队列的次数,当t第k次出队列时,就是第k短路了.但点数过大时,入队列的节点过多,时间和 ...
- [CareerCup] 13.1 Print Last K Lines 打印最后K行
13.1 Write a method to print the last K lines of an input file using C++. 这道题让我们用C++来打印一个输入文本的最后K行,最 ...
- 一些简单的问题. 2的10次方与k (涉及到b k m的要用乘来解读)
2的10次方是k k就表示2的10次方 2的16次方,解读为 2的6次方(64)*2的10次方(k) 简写为64k 64k=64*k 同理2的20次方 解读为2的10次方*2的10次方 k ...
- 快速排序/快速查找(第k个, 前k个问题)
//快速排序:Partition分割函数,三数中值分割 bool g_bInvalidInput = false; int median3(int* data, int start, int end) ...
- 在数组a中,a[i]+a[j]=a[k],求a[k]的最大值,a[k]max——猎八哥fly
在数组a中,a[i]+a[j]=a[k],求a[k]的最大值,a[k]max. 思路:将a中的数组两两相加,组成一个新的数组.并将新的数组和a数组进行sort排序.然后将a数组从大到小与新数组比较,如 ...
随机推荐
- keepalived的vrrp多播报文被禁,导致VIP同时位于多个机器上
keepalived的vrrp多播报文被禁,导致VIP同时位于多个机器上 查看man keepalived.conf,VRRP instances中给出了单播的设置方法,添加unicast_peer即 ...
- Java中校验身份证号合法性(真伪),获取出生日期、年龄、性别、籍贯
开发过程中有用的身份证号的业务场景,那么校验身份证的合法性就很重要了,另外还有通过身份证获取出生日期.年龄.性别.籍贯等信息, 下面是本人在开发中用到的关于校验身份证真伪的工具类,可以直接拿来使用,非 ...
- 团队作业4:第五篇Scrum冲刺博客(歪瑞古德小队)
目录 一.Daily Scrum Meeting 1.1 会议照片 1.2 项目进展 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3.2 Code Review 记录 3.3 issue ...
- 四则运算生成命令行程序 (Python)
Github项目地址:Github Pages 结对项目成员:张鹏 3118004985 郑靓 3118004988 一.项目需求分析 二.功能实现 三.代码实现or功能说明 ★ GUI功能扩展说明 ...
- Labview学习之路(八)如何让控件显示在修饰符的前面
在Labview2017版本中,前面板选择修饰控件,会出现部分修饰控件会掩盖其他控件,情况如下: 我们右键点击和属性中都没有相关属性的改变,为什么是这样我也不清除: 上网查了一下,看到其他版本会有显示 ...
- VSCode优雅编码
安装eslint 修改eslint配置 rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', ...
- 为什么建议软件测试自学而不推荐去IT培训机构?浅谈IT培训机构存在的意义
原文地址:https://www.jianshu.com/p/447c65654e84 哥们别太天真啦,知乎上那些到处以大神自居,说培训机构各种神坑不靠谱的,绝对是无利不起早的,很多都是借着贬低别人来 ...
- 目标检测中的IOU和CIOU原理讲解以及应用(附测试代码)
上期讲解了目标检测中的三种数据增强的方法,这期我们讲讲目标检测中用来评估对象检测算法的IOU和CIOU的原理应用以及代码实现. 交并比IOU(Intersection over union) 在目标检 ...
- 给EmpMapper开放Restful接口
本文例程下载:https://files.cnblogs.com/files/xiandedanteng/gatling20200428-3.zip 接口控制器代码如下: 请求url和响应都写在了每个 ...
- ES ElasticSearch 7.x 下动态扩大索引的shard数量
ES ElasticSearch 7.x 下动态扩大索引的shard数量 背景 在老版本的ES(例如2.3版本)中, index的shard数量定好后,就不能再修改,除非重建数据才能实现. 从ES6. ...