gpt4 book ai didi

c++ - 具有单个键的多个值的 STL 集合

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:50 24 4
gpt4 key购买 nike

从 sql 我有一个输出:

id value123 xxx124 xxx124 yyy125 xxx

我在 C++ 代码中处理此输出,我想在其中使用 123、125 id(唯一)和 124,它们分别具有多个值。

基本上,我想分别存储唯一和多值 ID,然后再分别检索它们。

我可以使用任何 STL 容器。

假设 container1 存储唯一值

123 xxx125 xxx

容器2

124 xxx124 yyy

在 map 中我可以有唯一的键值对:(123->xxx), (125->xxx) and 124->xxx,yyy 分开?

有人可以帮助我创建更好的设计吗?

最佳答案

最简单的方法是 std::map<int, std::vector<std::string> > (将 std::string 替换为您的类型),如下所示:

#include <iostream>
#include <string>
#include <map>
#include <vector>

int main()
{
std::map< int, std::vector< std::string > > map; // could use std::unordered_map as well for O(1) lookup if order of keys doesn't matter
map[123].push_back("AAA");
map[124].push_back("BBB");
map[124].push_back("CCC");
map[125].push_back("DDD");
for(auto itr = map.begin(); itr!=map.end(); itr++) {
std::cout<<itr->first<<":";
for(auto vitr = itr->second.begin(); vitr != itr->second.end(); vitr++){
std::cout<<*vitr<<",";
}
std::cout<<std::endl;
}
}

输出:

123:AAA,
124:BBB,CCC,
125:DDD,

从您的描述来看,将每个键(无论有多少条目)都视为值列表是否可以接受,这有点不清楚。但如果是这样,这是最直接的方法。

关于c++ - 具有单个键的多个值的 STL 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29136773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com