在C++中實現buffer的動態擴容通常可以使用動態數組或者使用STL中的vector容器來實現。以下是使用vector容器的示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> buffer;
int capacity = 10; // 初始容量
// 添加元素到buffer
for (int i = 0; i < capacity; i++) {
buffer.push_back(i);
}
// 打印buffer的容量和大小
std::cout << "Buffer capacity: " << buffer.capacity() << std::endl;
std::cout << "Buffer size: " << buffer.size() << std::endl;
// 動態擴容
buffer.reserve(20); // 設置新的容量
// 添加更多元素到buffer
for (int i = capacity; i < 20; i++) {
buffer.push_back(i);
}
// 打印擴容后的buffer容量和大小
std::cout << "Buffer capacity after resizing: " << buffer.capacity() << std::endl;
std::cout << "Buffer size after resizing: " << buffer.size() << std::endl;
return 0;
}
在上面的示例中,我們使用了vector容器來實現buffer的動態擴容。首先,我們設置了初始容量為10,并向buffer中添加10個元素。然后,我們使用reserve
函數設置了新的容量為20,并在buffer中添加更多元素。最后,我們打印了擴容后的buffer容量和大小。