首页 > 试题广场 >

请你回答一下STL里resize和reserve的区别

[问答题]

请你回答一下STL里resize和reserve的区别

答案有误,我的运行结果是
50  100
150  150
150  150
50  150
发表于 2019-07-08 11:24:55 回复(1)

#include <iostream>
#include <vector>
int main(int argc, const char * argv[]) {
    // insert code here...
    std::vector<int> v({1,2,3,4,5});
    v.reserve(2);
    std::cout<<v.size();
    std::cout<<" "<<v.capacity();
    std::cout<<"\n";
    for(auto it:v)
        std::cout<<it<<" ";
    
    std::cout<<"\n";
    v.resize(2);
    std::cout<<v.size();
    std::cout<<" "<<v.capacity();
    std::cout<<"\n";
    for(auto it:v)
        std::cout<<it<<" ";
}

如果调整的数字小于vector的实际大小,reserve什么都不会发生,resize会丢弃多出的部分
发表于 2021-03-13 21:35:37 回复(0)