相关疑难解决方法(0)

什么是矢量容量的目的

Vector API定义了4种不同的构造函数:

Vector()

Vector(Collection<? extends E> c)

Vector(int initialCapacity)

Vector(int initialCapacity, int capacityIncrement)
Run Code Online (Sandbox Code Playgroud)

但它们如何运作以及它们用于什么?我为什么要为矢量定义固定容量?即使我将初始容量设置为100,我也可以向向量添加101.项:

Vector<Object> test = new Vector<Object>(100);
for (int i = 0; i < 100; i++) {
    test.add(new Object());
}

test.add(new Object());
System.out.println(test.size());
System.out.println(test.capacity());
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,第二个sysout(test.capacity())写入200.为什么此向量中的容量为200?初始容量为100,我没有定义容量增量.

我真的想知道是否有使用这些建筑师的真实世界的例子?

还有一个熟悉的问题:究竟是Vector.get(int position)和Vector.elementAt(int position)之间的区别?我读到在将Vector添加到Collection类之前定义了get方法,因此有必要在以后添加方法elementAt(int position).真的吗?或者还有其他差异吗?

java

8
推荐指数
1
解决办法
1万
查看次数

len()和capacity()有什么区别?

当我创建一个向量时,长度和容量是相同的。这些方法有什么区别?

fn main() {
    let vec = vec![1, 2, 3, 4, 5];
    println!("Length: {}", vec.len()); // Length: 5
    println!("Capacity: {}", vec.capacity()); // Capacity: 5
}
Run Code Online (Sandbox Code Playgroud)

rust

4
推荐指数
1
解决办法
2483
查看次数

c++ 向量的 size() 和 capacity()

我刚刚开始使用 C++ 的标准库,我开始的第一件事是std::vector. 我对capacity()向量中的 有点困惑。我知道在每个 之后push_back()capacity向量的 以指数幂变化,但在下面的输出中capacity,即使在插入之后,有时也会保持相同的值。有人可以向我解释内部工作吗?

#include<iostream>
#include<vector>

using namespace std;

int main(){
    vector<int> v;
    int capacity=v.capacity();
    cout<<"Capacity before push_back(): "<<capacity<<endl;
    for(int i=0;i<10;i++){
        v.push_back(i);
        cout<<"Capacity: "<<v.capacity()<<endl;
        
    }
    for(auto j=v.begin();j!=v.end();j++){
        cout<<*j<<endl;
    }
     
    cout<<"Size of vector: "<<v.size()<<endl;
    cout<<"Final Capacity of vector: "<<v.capacity()<<endl;
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Capacity before push_back(): 0
Capacity: 1
Capacity: 2
Capacity: 4
Capacity: 4
Capacity: 8
Capacity: 8
Capacity: 8
Capacity: 8
Capacity: 16
Capacity: 16
0 …
Run Code Online (Sandbox Code Playgroud)

c++ stl vector dynamic-memory-allocation c++11

2
推荐指数
1
解决办法
208
查看次数

标签 统计

c++ ×1

c++11 ×1

dynamic-memory-allocation ×1

java ×1

rust ×1

stl ×1

vector ×1