Skip to content

HashMap allows len > capacity #30983

Closed
Closed
@bluss

Description

@bluss

It looks like HashMap::capacity() returns a too small value. It does not always report a capacity greater or equal to current length!

Output:

len=116, cap=116
len=117, cap=116
len=118, cap=232

Testcase (playpen)

use std::collections::HashMap;

fn main() {
    let mut x = HashMap::new();

    for i in 0..116 {
        x.insert(i, 0);
    }
    println!("len={}, cap={}", x.len(), x.capacity());
    x.insert(1729, 0);
    println!("len={}, cap={}", x.len(), x.capacity());
    x.insert(1730, 0);
    println!("len={}, cap={}", x.len(), x.capacity());
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions