gpt4 book ai didi

c++ - 创建字符串常量集集合 C++

转载 作者:太空狗 更新时间:2023-10-29 19:44:17 25 4
gpt4 key购买 nike

这听起来像是一个基本问题,当然可以解决,但我正在寻找一个快速而优雅的解决方案。

我想为我的程序创建一个保留字集合:{“苹果”、“橙子”、“桃子”

它是常量,我希望能够在运行时检查字符串 s 是否为保留字(f s 是集合的一部分)。

我考虑过使用 std::set 但我不想手动将我的每个保留字添加到集合中。此外,我不需要 set 的全部功能,例如我不需要添加新元素或删除元素。

什么是优雅的做法?

最佳答案

您可以将单词存储在一个数组中,然后使用 std::set范围构造器:

char const* raw_words[] = { "apple", "orange", "peach" };

std::set<std::string> const words(std::begin(raw_words), std::end(raw_words));

这利用了新的 beginend C++11 中的函数,但您也可以在 C++03 中使用指向数组第一个和尾后一个元素的指针来执行此操作。

在 C++11 中,您还可以使用初始化列表来初始化 std::set ,尽管并非所有编译器都支持此功能。

另请注意,如果单词集的内容永远不会改变,那么简单地使用排序的 std::vector<std::string> 可能会更好。与 std::lower_boundstd::binary_search寻找元素。您可能会发现这会表现得更好。

关于c++ - 创建字符串常量集集合 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10964802/

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