在C++中,resize函数用于改变容器的大小。它有以下几种用法:
- resize(n):将容器的大小调整为n,如果n小于当前大小,则删除多余的元素;如果n大于当前大小,则在末尾添加默认构造的元素。
std::vectorvec{1, 2, 3, 4, 5}; vec.resize(3); // vec变为{1, 2, 3} vec.resize(5); // vec变为{1, 2, 3, 0, 0}
- resize(n, value):将容器的大小调整为n,如果n小于当前大小,则删除多余的元素;如果n大于当前大小,则在末尾添加值为value的元素。
std::vectorvec{1, 2, 3, 4, 5}; vec.resize(3, 0); // vec变为{1, 2, 3} vec.resize(5, 9); // vec变为{1, 2, 3, 9, 9}
- resize(n):对于std::string,还可以使用resize函数来截取字符串或在字符串末尾添加空格。
std::string str = "hello"; str.resize(3); // str变为"hel" str.resize(7); // str变为"hel ",在末尾添加了4个空格
需要注意的是,resize函数会修改容器的大小,可能会导致原来的元素被删除或新增元素。在使用resize函数时,需要注意对容器中的元素进行备份或重新赋值。