resize(n)一般是用来改变容器的大小,使其包含n个元素。如果n小于当前容器的个数,容器只保留n个元素,并删除多余的元素。如果n大于当前容器个数,则在容器末尾插入一定的元素直至扩展到n个。如果val被指定,新增加的元素被初始化为val的副本。如果n大于当前容器的个数,所需要的存储空间会自动进行分配。
|
Output:
|
resize容易被误用来限定容器的大小,比如想限定容器的个数为n,就有可能会使用myVector.resize(n)。并且当容器的大小为n时,用push_back()压入一个元素后,以为元素会被压入第一个,而实际上是被压入到了第n+1个,如果push_back()n个元素,这时容器的大小已经变成了2n个,多出一倍的存储空间。因此如果想限定容器的大小,需要自己增加额外的代码进行判断,可以通过size()获取容器大小后进行处理,resize()只能用来调整容器大小为n个。使用resize()后,如果想把元素压入自己想要的位置,可以通过访问下标或者遍历容器来进行操作。