Struct compacts_bits::Vec64
[−]
[src]
pub struct Vec64 { /* fields omitted */ }Map of Vec32.
Methods
impl Vec64[src]
fn new() -> Self
fn clear(&mut self)
fn count_ones(&self) -> u128
fn count_zeros(&self) -> u128
fn mem_size(&self) -> u128
fn optimize(&mut self)
fn contains(&self, x: u64) -> bool
Return true if the value exists.
Examples
use compacts_bits::Vec64; let mut bits = Vec64::new(); assert!(!bits.contains(1 << 50)); bits.insert(1 << 50); assert!(bits.contains(1 << 50)); assert_eq!(1, bits.count_ones());
fn insert(&mut self, x: u64) -> bool
Return true if the value doesn't exists and inserted successfuly.
Examples
use compacts_bits::Vec64; let mut bits = Vec64::new(); assert!(bits.insert(1 << 50)); assert!(!bits.insert(1 << 50)); assert_eq!(1, bits.count_ones());
fn remove(&mut self, x: u64) -> bool
Return true if the value exists and removed successfuly.
Examples
use compacts_bits::Vec64; let mut bits = Vec64::new(); assert!(bits.insert(1 << 60)); assert!(bits.remove(1 << 60)); assert_eq!(0, bits.count_ones());
fn iter<'r>(&'r self) -> impl Iterator<Item = u64> + 'r
fn stats<'r>(&'r self) -> impl Iterator<Item = Stats> + 'r
fn summary(&self) -> Summary
Trait Implementations
impl Intersection<Vec64> for Vec64[src]
type Output = Vec64
fn intersection(self, that: Vec64) -> Self::Output
impl<'r> Intersection<&'r Vec64> for Vec64[src]
type Output = Vec64
fn intersection(self, that: &Vec64) -> Self::Output
impl<'r1, 'r2> Intersection<&'r2 Vec64> for &'r1 Vec64[src]
type Output = Vec64
fn intersection(self, that: &Vec64) -> Self::Output
impl Union<Vec64> for Vec64[src]
impl<'r> Union<&'r Vec64> for Vec64[src]
impl<'r1, 'r2> Union<&'r2 Vec64> for &'r1 Vec64[src]
impl Difference<Vec64> for Vec64[src]
type Output = Vec64
fn difference(self, that: Vec64) -> Self::Output
impl<'r> Difference<&'r Vec64> for Vec64[src]
type Output = Vec64
fn difference(self, that: &Vec64) -> Self::Output
impl<'r1, 'r2> Difference<&'r2 Vec64> for &'r1 Vec64[src]
type Output = Vec64
fn difference(self, that: &Vec64) -> Self::Output
impl SymmetricDifference<Vec64> for Vec64[src]
type Output = Vec64
fn symmetric_difference(self, that: Vec64) -> Self::Output
impl<'r> SymmetricDifference<&'r Vec64> for Vec64[src]
type Output = Vec64
fn symmetric_difference(self, that: &Vec64) -> Self::Output
impl<'r1, 'r2> SymmetricDifference<&'r2 Vec64> for &'r1 Vec64[src]
type Output = Vec64
fn symmetric_difference(self, that: &Vec64) -> Self::Output
impl<'r> IntersectionWith<&'r Vec64> for Vec64[src]
fn intersection_with(&mut self, that: &'r Vec64)
impl<'r> UnionWith<&'r Vec64> for Vec64[src]
fn union_with(&mut self, that: &'r Vec64)
impl<'r> DifferenceWith<&'r Vec64> for Vec64[src]
fn difference_with(&mut self, that: &'r Vec64)
impl<'r> SymmetricDifferenceWith<&'r Vec64> for Vec64[src]
fn symmetric_difference_with(&mut self, that: &'r Vec64)
impl Clone for Vec64[src]
fn clone(&self) -> Vec64
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more
impl Debug for Vec64[src]
impl Default for Vec64[src]
impl Index<u64> for Vec64[src]
type Output = bool
The returned type after indexing
fn index(&self, i: u64) -> &Self::Output
The method for the indexing (container[index]) operation
impl<'a> FromIterator<&'a u64> for Vec64[src]
fn from_iter<I>(iter: I) -> Self where
I: IntoIterator<Item = &'a u64>,
I: IntoIterator<Item = &'a u64>,
Creates a value from an iterator. Read more
impl<T: AsRef<[u64]>> From<T> for Vec64[src]
fn from(v: T) -> Self
Performs the conversion.
impl Rank<u64> for Vec64[src]
type Weight = u128
Hamming Weight or Population Count.
const SIZE: u128
SIZE: u128 = 1 << 64
fn rank1(&self, i: u64) -> Self::Weight
Returns occurences of non-zero bit in [0,i].
fn rank0(&self, i: u64) -> Self::Weight
Returns occurences of zero bit in [0,i].
impl Select1<u64> for Vec64[src]
fn select1(&self, c: u64) -> Option<u64>
Returns the position of 'c+1'th appearance of non-zero bit.