### 16 releases

0.6.1 | Jun 1, 2019 |
---|---|

0.5.1 | Mar 21, 2019 |

0.5.0 | Apr 23, 2018 |

0.4.4 | May 30, 2017 |

0.4.0 | Jul 10, 2015 |

#**11** in Data structures

**101,926** downloads per month

Used in **706** crates (81 directly)

**MIT/Apache**

69KB

1.5K
SLoC

A Vec of bits.

Documentation is available at https://contain-rs.github.io/bit-vec/bit_vec.

## Usage

Add this to your Cargo.toml:

`[``dependencies``]`
`bit-vec ``=` `"`0.6`"`

and this to your crate root:

`extern` `crate` bit_vec`;`

If you want serde support, include the feature like this:

`[``dependencies``]`
`bit-vec = { version = "0.6", features ``=` `[``"`serde`"``]` }

If you want to use bit-vec in a program that has

, just drop default features:`#!``[``no_std``]`

`[``dependencies``]`
`bit-vec = { version = "0.6", default-features ``=` `false` }

###
`lib.rs`

:

Collections implemented with bit vectors.

# Examples

This is a simple example of the Sieve of Eratosthenes which calculates prime numbers up to a given limit.

`use` `bit_vec``::`BitVec`;`
`let` max_prime `=` `10000``;`
`//` Store the primes as a BitVec
`let` primes `=` `{`
`//` Assume all numbers are prime to begin, and then we
`//` cross off non-primes progressively
`let` `mut` bv `=` `BitVec``::`from_elem`(`max_prime`,` `true``)``;`
`//` Neither 0 nor 1 are prime
bv`.``set``(``0``,` `false``)``;`
bv`.``set``(``1``,` `false``)``;`
`for` i `in` `2``..` `1` `+` `(`max_prime `as` `f64``)``.``sqrt``(``)` `as` `usize` `{`
`//` if i is a prime
`if` bv`[`i`]` `{`
`//` Mark all multiples of i as non-prime (any multiples below i * i
`//` will have been marked as non-prime previously)
`for` j `in` i`..` `{`
`if` i `*` j `>=` max_prime `{`
`break``;`
`}`
bv`.``set``(`i `*` j`,` `false``)`
`}`
`}`
`}`
bv
`}``;`
`//` Simple primality tests below our max bound
`let` print_primes `=` `20``;`
`print!``(``"`The primes below `{}` are: `"``,` print_primes`)``;`
`for` x `in` `0``..`print_primes `{`
`if` primes`.``get``(`x`)``.``unwrap_or``(``false``)` `{`
`print!``(``"``{}` `"``,` x`)``;`
`}`
`}`
`println!``(``)``;`
`let` num_primes `=` primes`.``iter``(``)``.``filter``(``|``x``|` `*`x`)``.``count``(``)``;`
`println!``(``"`There are `{}` primes below `{}``"``,` num_primes`,` max_prime`)``;`
`assert_eq!``(`num_primes`,` `1_229``)``;`

#### Dependencies

~205KB