在c++中,resize()函數可以改變數組的大小。該函數在標準庫中的vector容器和array容器中都提供了實現。
對于vector容器,resize()函數用于改變容器中元素的數量。如果新的大小大于當前大小,則容器會在末尾添加新元素,并將其初始化為默認值。如果新的大小小于當前大小,則容器會刪除多余的元素。例如:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "Current size: " << vec.size() << std::endl;
vec.resize(8); // 增加到8個元素
std::cout << "New size: " << vec.size() << std::endl;
vec.resize(3); // 減少到3個元素
std::cout << "New size: " << vec.size() << std::endl;
return 0;
}
對于array容器,resize()函數用于改變數組的大小。和vector不同的是,array的大小在編譯時就已經確定,因此resize()函數只能通過重新定義一個新的array來改變大小。例如:
#include <iostream>
#include <array>
int main() {
std::array<int, 5> arr = {1, 2, 3, 4, 5};
arr = {1, 2, 3}; // 重新定義一個新的array,大小為3
return 0;
}
因此,c++中的resize()函數可以改變vector容器中元素的數量,但對于array容器只能通過重新定義新的array來改變大小。