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:
@@ -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
44
example/basic.cpp
Normal 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";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user