在C++中,数组是一种固定大小的数据结构,无法像动态数组一样动态扩容。但是可以通过使用动态数组(如std::vector)和复制数据的方式来实现类似的功能。
下面是一个简单的示例,演示如何使用std::vector实现动态扩容的功能:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
// 添加元素到动态数组
for (int i = 0; i < 10; i++) {
vec.push_back(i);
}
std::cout << "原始数组大小: " << vec.size() << std::endl;
// 扩容数组
vec.resize(20);
// 添加更多元素到动态数组
for (int i = 10; i < 20; i++) {
vec[i] = i;
}
std::cout << "扩容后数组大小: " << vec.size() << std::endl;
// 输出数组元素
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
return 0;
}
在上面的示例中,我们使用了std::vector来实现动态数组,并使用resize函数来扩容数组的大小。然后我们可以像操作普通数组一样操作动态数组。
另外,还可以使用std::vector的reserve函数来预留一定大小的存储空间,避免频繁扩容带来的性能开销。