2
0
mirror of https://github.com/boostorg/bloom.git synced 2026-01-23 05:22:10 +00:00
Files
bloom/example/basic.cpp
2025-04-23 17:17:25 +02:00

45 lines
1.1 KiB
C++

/* Basic example of use of Boost.Bloom.
*
* Copyright 2025 Joaquin M Lopez Munoz.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*
* See https://www.boost.org/libs/bloom for library home page.
*/
#include <boost/bloom/filter.hpp>
#include <cassert>
#include <iostream>
#include <string>
int main()
{
/* Bloom filter of strings with 5 bits set per insertion */
using filter = boost::bloom::filter<std::string, 5>;
/* create filter with a capacity of 1,000,000 bits */
filter f(1000000);
/* insert elements in the set */
f.insert("hello");
f.insert("Boost");
/* elements inserted are always correctly checked as such */
assert(f.may_contain("hello") == true);
/* Elements not inserted may incorrectly be identified as such with a
* false probability rate (FPR) which is a function of the array capacity,
* the number of bits set per element and generally how the
* boost::bloom::filter was configured.
*/
if(f.may_contain("bye")) { /* likely false */
std::cout << "false positive\n";
}
}