请问:除了这点区别,还有其他的区别吗?
经本人测试,调用这两个函数时,元素的析构函数都会执行,不知道还有没有其他的区别
9 个解决方案
#1
你试一下size会不会变化?
#2
这两个的区别还不够大?
#3
完全就是两个不同功能的函数嘛
#4
再说你是怎么测试的?你移除里面的元素,销毁对象的时候那不就调用析构函数嘛
#5
区别就是一次只删最后一个元素和一次全删了的区别,其他没区别了,vector的容量是不会变化的
#6
pop_back之后vector容量会减少的吧
std::vector::pop_back
void pop_back();
Delete last element
Removes the last element in the vector, effectively reducing the container size by one.
This destroys the removed element.
std::vector::pop_back
void pop_back();
Delete last element
Removes the last element in the vector, effectively reducing the container size by one.
This destroys the removed element.
#7
lz说的是删除元素的方式:
clear:最终是调用_Dest_val
pop_back:调用的也是 _Dest_val
所以没啥区别,要说区别:
clear:删除了vector中的所有元素。
pop_back:只是删除了尾部的元素,当然如果只有一个元素的话,2者就完全一样了。
建议lz看看源码,不要纠结这个东西。
clear:最终是调用_Dest_val
pop_back:调用的也是 _Dest_val
所以没啥区别,要说区别:
clear:删除了vector中的所有元素。
pop_back:只是删除了尾部的元素,当然如果只有一个元素的话,2者就完全一样了。
建议lz看看源码,不要纠结这个东西。
#8
size 会变。但是 capacity 不一定会变。
#9
调用析构而不释放内存。
#1
你试一下size会不会变化?
#2
这两个的区别还不够大?
#3
完全就是两个不同功能的函数嘛
#4
再说你是怎么测试的?你移除里面的元素,销毁对象的时候那不就调用析构函数嘛
#5
区别就是一次只删最后一个元素和一次全删了的区别,其他没区别了,vector的容量是不会变化的
#6
pop_back之后vector容量会减少的吧
std::vector::pop_back
void pop_back();
Delete last element
Removes the last element in the vector, effectively reducing the container size by one.
This destroys the removed element.
std::vector::pop_back
void pop_back();
Delete last element
Removes the last element in the vector, effectively reducing the container size by one.
This destroys the removed element.
#7
lz说的是删除元素的方式:
clear:最终是调用_Dest_val
pop_back:调用的也是 _Dest_val
所以没啥区别,要说区别:
clear:删除了vector中的所有元素。
pop_back:只是删除了尾部的元素,当然如果只有一个元素的话,2者就完全一样了。
建议lz看看源码,不要纠结这个东西。
clear:最终是调用_Dest_val
pop_back:调用的也是 _Dest_val
所以没啥区别,要说区别:
clear:删除了vector中的所有元素。
pop_back:只是删除了尾部的元素,当然如果只有一个元素的话,2者就完全一样了。
建议lz看看源码,不要纠结这个东西。
#8
size 会变。但是 capacity 不一定会变。
#9
调用析构而不释放内存。