📜  C++ Vector中capacity与size(1)

📅  最后修改于: 2023-12-03 15:29:51.732000             🧑  作者: Mango

C++ Vector中capacity与size

C++中的vector是一个动态数组,它的大小可以根据需要动态地增大或减小,它也提供了一些非常有用的函数来方便我们对数组进行操作。在使用vector时,我们需要关注它的两个属性——capacity和size。

size

vector的size返回它包含的元素数量。我们可以使用size函数获取vector的大小。例如:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4};
    cout << "Vector size is: " << vec.size() << endl;

    return 0;
}

输出结果为:

Vector size is: 4
capacity

vector的capacity返回它当前可以容纳的最大元素数量。vector初始化的时候,它的capacity是一个默认值,可以使用reserve函数来改变capacity。例如:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec;

    cout << "Vector size is: " << vec.size() << endl;
    cout << "Vector capacity is: " << vec.capacity() << endl;

    vec.reserve(10);

    cout << "Vector size is: " << vec.size() << endl;
    cout << "Vector capacity is: " << vec.capacity() << endl;

    return 0;
}

输出结果为:

Vector size is: 0
Vector capacity is: 0
Vector size is: 0
Vector capacity is: 10

注意,reserve函数只是分配了更多的空间,但并不会在vector中添加任何元素。如果您希望向vector中添加元素,可以使用resize函数。

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec;

    cout << "Vector size is: " << vec.size() << endl;
    cout << "Vector capacity is: " << vec.capacity() << endl;

    vec.resize(10);

    cout << "Vector size is: " << vec.size() << endl;
    cout << "Vector capacity is: " << vec.capacity() << endl;

    return 0;
}

输出结果为:

Vector size is: 0
Vector capacity is: 0
Vector size is: 10
Vector capacity is: 10
总结

在使用vector时,我们需要了解并掌握它的capacity和size属性。capacity是vector当前可以容纳的最大元素数量,而size返回vector当前包含的元素数量。我们可以使用resize函数向vector中添加元素,并使用reserve函数分配更多的空间以提高性能。