本文共 1605 字,大约阅读时间需要 5 分钟。
#include#include #include #include #include void capacity_increase(){ std::vector vec; std::cout < << std::endl; std::cout < << std::endl; std::cout < << std::endl; vec.push_back(1000); std::cout < << std::endl; std::cout < << std::endl; std::cout < << std::endl; vec.resize(100); std::cout < << std::endl; std::cout < << std::endl; std::cout < << std::endl; //vec.insert(100); vec.push_back(1000); std::cout < << std::endl; std::cout < << std::endl; std::cout < << std::endl; vec.reserve(300); std::cout < << std::endl; std::cout < << std::endl; std::cout < << std::endl; vec.shrink_to_fit(); std::cout < << std::endl; std::cout < << std::endl; std::cout < << std::endl;}void delete_elem(){ std::vector vec(20); std::generate(vec.begin(),vec.end(),[]{return rand() % 10;}); std::copy(vec.begin(),vec.end(),std::ostream_iterator (std::cout," ")); std::cout <<'\n'; int value = 5; //just delete one elem /* auto pos = std::find(vec.begin(),vec.end(),5); if(pos != vec.end()) pos = vec.erase(pos); for(;pos != vec.end(); pos++){ std::cout << *pos<<" "; } std::cout <<'\n'; */ // method 1 std::remove_if auto vec1 = vec; vec1.erase(std::remove_if(vec1.begin(),vec1.end(),[=](auto t){return t == value;}),vec1.end()); std::copy(vec1.begin(),vec1.end(),std::ostream_iterator (std::cout," ")); std::cout <<'\n'; // method 2 erase for(auto first = vec.begin();first != vec.end();){ if(*first == value) vec.erase(first); else first++; } std::copy(vec.begin(),vec.end(),std::ostream_iterator (std::cout," ")); std::cout <<'\n';}
转载地址:http://djxgj.baihongyu.com/