c++定义一个静态查找表,查找表中每个元素包含两个数据项,一个是string类型的关键字key,一个是int类型的出现次数count。 首先根据输入的关键词的个数初始化一个静态查找表;
时间: 2024-10-15 19:07:21 浏览: 38
C++调用C#类库demo
在C++中,为了创建一个静态查找表存储字符串(key)及其对应的出现次数(count),你可以定义一个结构体或者类来表示这个键值对,并将其作为静态容器如`std::map`、`std::unordered_map`或数组的元素。这里我们使用`std::pair`和`std::vector`结合,因为`std::vector`更适合动态大小的需求:
```cpp
#include <string>
#include <vector>
#include <utility> // 包含 std::pair
// 定义一个结构体来存储关键字和计数
struct KeywordCount {
std::string key;
int count;
};
// 静态查找表,使用 vector 存储,可以按需扩展
class StaticLookupTable {
public:
// 构造函数,初始化查找表为空
StaticLookupTable(size_t initial_capacity = 0) : table(initial_capacity) {}
// 添加新的关键字和计数
void addKeyword(const std::string& keyword, int count) {
if (table.empty() || table.back().key != keyword) {
table.push_back(KeywordCount{keyword, count});
} else {
table.back().count += count; // 如果已经存在,直接更新计数
}
}
// 查找关键字并返回计数
int getCount(const std::string& keyword) const {
for (const auto& entry : table) {
if (entry.key == keyword) {
return entry.count;
}
}
return 0; // 如果找不到关键字,返回0
}
private:
std::vector<KeywordCount> table; // 使用 vector 存储关键字计数对
};
```
阅读全文