📅  最后修改于: 2023-12-03 15:29:51.732000             🧑  作者: Mango
C++中的vector是一个动态数组,它的大小可以根据需要动态地增大或减小,它也提供了一些非常有用的函数来方便我们对数组进行操作。在使用vector时,我们需要关注它的两个属性——capacity和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
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函数分配更多的空间以提高性能。