有时根据需要会将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)字符串的更多相关文章

  1. 机器学习 —— 基础整理(三)生成式模型的非参数方法: Parzen窗估计、k近邻估计;k近邻分类器

    本文简述了以下内容: (一)生成式模型的非参数方法 (二)Parzen窗估计 (三)k近邻估计 (四)k近邻分类器(k-nearest neighbor,kNN) (一)非参数方法(Non-param ...

  2. [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 ...

  3. [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 ...

  4. SCU 4313 把一棵树切成每段K个点 (n%k)剩下的点不管

    题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=4313 判断是不是存在拆图得到新连通分支的点个数是K的倍数 注意一个点所连的边只能被切一条 # ...

  5. 第K短路+严格第K短路

    所谓K短路,就是从s到t的第K短的路,第1短就是最短路. 如何求第K短呢?有一种简单的方法是广度优先搜索,记录t出队列的次数,当t第k次出队列时,就是第k短路了.但点数过大时,入队列的节点过多,时间和 ...

  6. [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行,最 ...

  7. 一些简单的问题. 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 ...

  8. 快速排序/快速查找(第k个, 前k个问题)

    //快速排序:Partition分割函数,三数中值分割 bool g_bInvalidInput = false; int median3(int* data, int start, int end) ...

  9. 在数组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数组从大到小与新数组比较,如 ...

随机推荐

  1. 匹配对象方法:group() 与 groups()

    当在处理正则表达式的时候,除了正则表达式对象之外,还有另一个对象类型:匹配对象,即是成功调用match()或者search()所返回的对象. 匹配对象有两个主要方法:group() 和 groups( ...

  2. Android低功耗蓝牙总结

    这里只列出重点原理内容,更加细节的内容请阅读前面文章 首先要搞清楚一点,我们在 Android 中通过 SDK 获得的蓝牙广播包是经过底层的 SDK 给我们处理过的,是一个长度为 62 的字节数组.这 ...

  3. 阿里巴巴Java开发手册1.4.0

    链接:https://pan.baidu.com/s/16kKzcRcu20SMDdydMm9ZUw 提取码:p9ef

  4. 为什么网站URL需要设置为静态化

    http://www.wocaoseo.com/thread-95-1-1.html       为什么网站URL需要静态化?网站url静态化的好处是什么?现在很多网站的链接都是静态规的链接,但是网站 ...

  5. 解决git add README.md 时报错 fatal: pathspec 'README.md' did not match any files

    解决办法一: 直接在远程仓库创建然后在本地$ git pull origin master 解决办法二: 换成$ touch README.md在本地创建修改后再commit push上去

  6. asp image

    @Url.Content("~/Content/images/myimage.png") <img src="~/Content/images/myimage.pn ...

  7. P1306 斐波那契公约数(ksm+结论)

    题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? Update:加入了一组数据. 输 ...

  8. 深入了解Netty【一】BIO、NIO、AIO简单介绍

    引言 在Java中提供了三种IO模型:BIO.NIO.AIO,模型的选择决定了程序通信的性能. 1.1.使用场景 BIO BIO适用于连接数比较小的应用,这种IO模型对服务器资源要求比较高. NIO ...

  9. Codeforces 1337D Xenia and Colorful Gems

    题意 给你3个数组\(a, b\)和\(c\),最小化\((x-y)^2+(y-z)^2+(z-x)^2\),其中\(x \in a, y \in b, z \in c\). 解题思路 这题其实第一眼 ...

  10. 动态路由 - OSPF 一文详解

    动态路由 在之前的文章中,介绍了基于距离矢量的路由协议.而在今天这这一部分中会主要讲解链路状态的路由协议,对于动态的路由协议来说,需要具备如下的能力: 发现远端网络 路由器可以直接获得直连路由,这是由 ...