c++ - 如何控制过滤器尺寸
问题描述
这是我第一次学习过滤器。我在学习C++过滤器时遇到了一个问题。我得到了一个关于过滤器的示例代码,但是这个过滤器的输出太大了,因为我希望过滤器的大小可以小于1KB。我想添加一个 for 循环,以便我可以只向过滤器添加适当大小的内容,但我在这个过程中遇到了一些问题。
这是我的过滤器代码:
int main(int argc, const char* argv[]) {
if (argc > 1) {
ifstream filter_file(argv[1]);
set<string> filter_lines;
string line;
for (string line; getline(filter_file, line);)
{
bitset<256> control_size;
for (size_t i = 0; i < control_size.size(); ++i)
{
filter_lines.insert(line);
}
}
for (string line; getline(cin, line); ) {
if (filter_lines.find(line) != filter_lines.end()) {
cout << line << endl;
}
}
if (!cin.eof()) {
throw runtime_error("Error reading from std::cin.");
}
}
}
但我的 for 循环似乎无法成功限制它。我的理解是getline用来获取整个文件,然后for循环控制大小。我的理解有问题吗?我该如何修改它?
解决方案
推荐阅读
- python - 如何从文件中创建具有名称的文件然后写入文件?Python。API 请求
- reactjs - 需要在 CSV 文件中查找列元素具有相同值的行数
- r - fix.by(by.x, x) 中的错误:“by”必须匹配列数 fix.by(by.x, x) 中的错误:“by”必须匹配列数
- amazon-web-services - 如何使用 cognito 和 lambda 函数或仅使用 angular 在 angular 项目中实现 aws oAuth
- html - 在 HTML 元素中放置左箭头和右箭头
- reactjs - 如何对 ts-ignore 评论进行分组?
- javascript - 有没有更好/更有效的方法来实现这一目标?
- swift - 如何从 MessageKit 检索消息作为字符串
- push-notification - 在弹出窗口中打开 webpush 通知 url
- python - Keras:如何使用`image_dataset_from_directory`加载测试集?