gpt4 book ai didi

c++ - vector 和结构 C++

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

我有一个文本文件,

cat mollydog benjibird charlie (etc..)

在另一个文本文件中,“有一天猫出去晒太阳——狗已经在花园里了……”(等等)

我应该用它的名字替换动物。目前我正在阅读文件并将动物类型放在一个 vector 中,将动物名称放在另一个 vector 中。我的问题是 - 我是否需要将它们放在一个结构中,以便当我循环查找 cat 时我可以找到关联的名称 - 或者我是否使用另一种方法。我听说过多维 vector ,但由于我对编程还很陌生,所以觉得它可能难以理解。

最佳答案

看来最适合您使用的结构是 map 。它可以让您将动物与名称相关联,并轻松高效地查找动物的名称。

试试这个:

std::map<std::string, std::string> animal_names;

第一个模板类型是key 类型,第二个是value 类型。在您的例子中,键是动物,值是名称。

然后您可以插入关联:

animal_names["cat"] = "molly";

很简单!请注意,如果您现在遍历 map ,您将按照动物的顺序获得它们。即 "bird" 将首先出现,然后是 "cat",然后是 "dog"

如果您根本不关心顺序,您可以改用 std::unordered_map。这将缩短访问和插入时间。


既然你说你是初学者,那我给你举个例子说明我会如何阅读你的文件:

std::ifstream file("animal_names.txt");
std::string animal, name;
std::map<std::string, std::string> animal_names;

while (file >> animal >> name) {
animal_names[animal] = name;
}

稍后,如果你想打印出,例如,猫的名字,就这样做:

std::cout << animal_names["cat"] << std::endl;

关于c++ - vector 和结构 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680183/

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