c++向量(而不是数组)
C++ vectors (instead of arrays)
我正在编写一个词法分析器,我将关键字和保留字存储在如下所示的数组中:
string keywords[20] = {
"and",
"or",
"while",
"not",
"if",
"read",
"write",
"set",
};
我发现我可以使用向量:
vector<string> keyword_list;
keyword_list.clear();
keyword_list.push_back("and");
keyword_list.push_back("or");
keyword_list.push_back("not");
然而,在这我需要isKeyword方法被修改为一个向量,并返回真或假。
#include <algorithm>
//...
bool isKeyword( const std::string &s )
{
return ( std::find( keyword_list.begin(), keyword_list.end(), s ) != keyword_list.end() );
}
如果向量要排序,那么你可以使用标准算法std::binary_search
#include <algorithm>
//...
bool isKeyword( const std::string &s )
{
return ( std::binary_search( keyword_list.begin(), keyword_list.end(), s ) );
}
相关文章:
- 将数组/向量发送到 c++ 脚本的 cython 示例
- C++:在多个线程中访问同一数组/向量的不同单元格是否会产生数据竞赛?
- 将指向多维数组向量中的单个项的指针传递给函数 c++
- 数组向量的文件 I/O
- 在一行中初始化和引入数组向量的正确方法?
- C++ 返回具有最小硬币的数组/向量以获得价值动态规划
- 将整数向量转换为字节数组向量,然后调用每个字节数组
- 我可以在不循环访问数组/向量的情况下检查数组/向量中的单词吗?
- (C )创建可以从功能访问的动态全局数组/向量
- 提升是否具有用于数组向量的智能指针
- 将函数应用于数组向量的元素
- 数组向量的内存布局是什么
- 获取数组/向量末尾地址的未定义行为
- "Empty"数组\向量成员 C++
- 将字符串向量转换为双2-D数组向量
- 排序多维数组/向量
- 如何创建模板化对象的数组/向量
- 如何在数组向量上使用 std::find
- 无法删除C++中的数组/向量
- 具有元素自定义构造函数的对象数组/向量