gpt4 book ai didi

c++ - 像列表一样订购但按键访问?

转载 作者:行者123 更新时间:2023-11-30 01:01:17 25 4
gpt4 key购买 nike

我使用列表将城市放入旅行中。然后我遍历显示旅行行程的列表。我想访问按名称而不是按行程顺序排列城市。所以我我以为我可以使用 map 而不是列表,但关键决定了命令。我还是想控制序列的顺序但能够通过 key 访问条目。

这些功能可以组合吗?有没有一些标准的方法来解决这个?

#include <list>
#include <iostream>
struct City{
City(std::string a_n, int a_d):name(a_n), duration(a_d){}
std::string name;
int duration;
};
int main(){
std::list<City*> trip;
trip.push_back(new City("NY", 5));
trip.push_back(new City("LA", 2));
for (std::list<City*>::iterator ii=trip.begin(); ii!=trip.end(); ++ii)
std::cout << (*ii)->name << " for " << (*ii)->duration << " days." <<std::endl;
}

最佳答案

您经常需要编写多个列表和 map 。常见的方法是从列表中的指针存储指向按城市查找 map 中的城市的指针。或者您可以使用类似 Boost.MultiIndex 的类做你想做的事,我会说的更干净。如果您想添加新索引,它的扩展性也更好,并且样板代码更少。通常也是 more space and time efficient

typedef multi_index_container<
City,
indexed_by<
sequenced<>, //gives you a list like interface
ordered_unique<City, std::string, &City::name> //gives you a lookup by name like map
>
> city_set;

关于c++ - 像列表一样订购但按键访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/901786/

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