免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 C/C++ multimap
最近访问板块 发新帖
查看: 2561 | 回复: 7
打印 上一主题 下一主题

[C++] multimap [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-21 14:41 |只看该作者 |倒序浏览
20可用积分
在数据库读出数据如下:
    num    name  add
     1       aa    aa_1
     1       bb    bb_1
     2       cc    cc_1
     2       dd    dd_1
     3       ee    ee_1
     ...

因为联合主键,有重复值

定义结构体
typedef struct tt
{
   int i;
   list<string> tname;
   list<string> tadd;

}tt;


我想把相同num值name和add做成list,应该怎么做?
map<int,tt>,举个例子,在num = 1时,我想tt->tname = {aa,bb},tt->tadd = {aa_1,bb_1}
应该怎么做?清帮忙

论坛徽章:
0
2 [报告]
发表于 2009-07-21 14:53 |只看该作者
没人知道马

论坛徽章:
0
3 [报告]
发表于 2009-07-21 14:56 |只看该作者
清帮忙啊

论坛徽章:
0
4 [报告]
发表于 2009-07-21 15:02 |只看该作者
typedef struct tt
{
  vector<string> tname;
  vector<string> tadd;
}tt;

map<int ,tt> data

遇到 一列值 就
data[id].tname.push_back("name");
data[id].tadd.push_back("add");

不就Ok啦!

论坛徽章:
0
5 [报告]
发表于 2009-07-21 15:17 |只看该作者
map<int, vector<tt>>
vector<tt> temp;
tt tt1;
tt1.i = 1;
tt1.tadd.push_back("add");
tt1.tname.push_back("name");
temp.push_back(tt1);
a.insert(make_pair(1, temp));

论坛徽章:
0
6 [报告]
发表于 2009-07-21 16:11 |只看该作者
原帖由 windyrobin 于 2009-7-21 15:02 发表
typedef struct tt
{
  vector tname;
  vector tadd;
}tt;

map data

遇到 一列值 就
data.tname.push_back("name");
data.tadd.push_back("add");

不就Ok啦!

碰到重复键值 添加会失败的

论坛徽章:
0
7 [报告]
发表于 2009-07-21 16:18 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2009-07-21 16:43 |只看该作者
其实你应该这样:


  1. typedef struct tt
  2. {
  3.    string tname;
  4.    string tadd;

  5. }tt;

  6. map<int, list<tt> > map_tt;

  7. map_tt t;
  8. t[1].push_back(tt(name, addr));
  9. ....
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP