2
0
mirror of https://github.com/boostorg/bloom.git synced 2026-01-19 04:02:11 +00:00

added basic example

This commit is contained in:
joaquintides
2025-04-23 17:17:25 +02:00
parent 5f5f27b90e
commit cc6c8174f0
2 changed files with 46 additions and 4 deletions

View File

@@ -11,7 +11,5 @@ project
<cxxstd>11
;
exe genome
: genome.cpp
: <cxxstd>17
;
exe basic : basic.cpp ;
exe genome : genome.cpp : <cxxstd>17 ;

44
example/basic.cpp Normal file
View File

@@ -0,0 +1,44 @@
/* 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";
}
}