网站推广广告 优帮云,广告竞价推广,汇川区住房和城乡建设厅网站,seo的内容有哪些std::remove和std::remove_if 是 C11 标准库中的一个算法函数.
std::remove
作用
遍历一遍容器#xff0c;将容器中所有不是指定元素的元素往前复制。
总之就是一句话#xff1a;
把不该删除的移动到前面#xff0c;后面的就是应该删除的。
注意#xff1a;
1#…std::remove和std::remove_if 是 C11 标准库中的一个算法函数.
std::remove
作用
遍历一遍容器将容器中所有不是指定元素的元素往前复制。
总之就是一句话
把不该删除的移动到前面后面的就是应该删除的。
注意
1不会将指定元素往后移而是直接删除目标元素。
2删除后容器的容量不变。
#include iostream
#include algorithmint main(){std::string stra,b,c,d,e,f;auto iterstd::remove(str.begin(),str.end(),,);std::coutstrstd::endl;return 0;
}
输出 #include iostream
#include algorithmint main(){std::string strabcdef;auto iterstd::remove(str.begin(),str.end(),a);std::coutstrstd::endl;return 0;
}返回值
返回最后一个元素移动的新位置的下一个元素位置的迭代器。
作用
删除容器中的所有指定元素。
#include iostream
#include algorithmint main(){std::string stra,b,c,d,e,f,;auto iterstd::remove(str.begin(),str.end(),,);str.erase(iter,str.end());std::coutstrstd::endl;return 0;
} #include iostream
#include algorithm
#include vectorint main(){std::vectorint vec{1,2,3,4,1,1,1,1,5};auto iterstd::remove(vec.begin(),vec.end(),1);for(int v:vec) std::coutv ;std::coutstd::endl;vec.erase(iter,vec.end());for(int v:vec) std::coutv ;std::coutstd::endl;return 0;
} std::remove_if
作用
std::remove只能对单个数据操作remove_if可以利用函数对象进行条件设置。
#include iostream
#include algorithm
#include vectorint main(){std::vectorint vec{1,2,3,4,5,6,7,8,9,10};std::remove_if(vec.begin(),vec.end(),[](int v){return v%20;});for(int v:vec) std::coutv ;std::coutstd::endl;return 0;
} 删除不满足条件的元素---返回值
#include iostream
#include algorithm
#include vectorint main(){std::vectorint vec{1,2,3,4,5,6,7,8,9,10};auto iterstd::remove_if(vec.begin(),vec.end(),[](int v){return v%20;});vec.erase(iter,vec.end());for(int v:vec) std::coutv ;std::coutstd::endl;return 0;
}