c++ - 在代码中包含 100 多个单词的最佳方法是什么?

标签 c++ arrays string vector

我正在编写一个将频繁访问数百个单词的程序,因此我不想将它们全部存储在一个 .txt 文件中,而是必须使用 cpu 和硬盘驱动器来访问、处理和存储在一个 vector 中,我想将它们包含在其中该程序。这样做的最佳方法是什么? (同时保持源代码清洁)

该程序将在问题中使用代词、动词等识别名词。

(我用的是MV)

*编辑 我想最好的选择是根据以下响应在初始化时将数据加载到程序中。

最佳答案

如果它们在编译时已知,最好的方法是像这样将它们存储在数组中。

std::string words[] =
{
  "foo" ,
  "bar" 
};

or

const char* words[] =
{
  "foo" ,
  "bar" 
};

在程序中,您可以访问它们,例如 words[0]words[1] 等。根据您的操作系统,程序也可以嵌入资源。您也可以使用该方法。

您也可以像当前一样存储它们。数百个单词应该很快就能读完。无关文件的优点是无需重新编译文件即可更改它们。但是可能会遇到这样的缺点,即当您分发程序时,您还必须分发额外的文件。用户可能会乱用纯文本文件,而您也必须处理格式错误的输入文件。

您还没有提到您打算如何访问这些词。取决于您可能需要其他数据结构,例如 setmap 甚至可能是 Trie

关于c++ - 在代码中包含 100 多个单词的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8458915/

相关文章:

c++ - 为什么 pthread_mutex_t 在尝试通过来自两个不同进程的共享内存进行锁定时会出现段错误?

string - 如何通过 TMemoryStream 将 Unicode 字符串加载到 TTreeView 中?

c - 带空格的字符串输入

c++ - 制作凯撒密码,它不想破译消息

c++ - TBB 并行管道 : Filter Timing Inconsistent

c++ - 将不可复制的闭包对象传递给 std::function 参数

javascript - 如何在 Mongoose 上为数组中的每个项目运行函数或单独写入数组对象

c++ - 无法从 'std::string' 转换为 'char'

javascript - 使用哪个正则表达式将字符串中的字体列表转换为数组?

java - 圆括号标识符 Java