C++<algorithm>和<numeric>学习(未完)

本文仅供个人学习,并没有什么阅读价值,请不小心点进来的朋友见谅...

先贴一些代码:

#include<iostream>
#include<vector> 
#include<list>
#include<string>
#include<algorithm>
#include<numeric>
#include<iterator> 

int main(int argc, char* argv[])
{
	std::vector<int> vec1{1,2,5,5,6,5,6};
	std::vector<int> vec2{1,2,5,5,6,5,6,7,7}; 
	std::list<std::string> mylist={"aa","aa","a"}; 
	auto it1=find(vec1.cbegin(),vec1.cend(),5);// 查找,返回迭代器 
	std::cout<<count(mylist.cbegin(),mylist.cend(),"a")<<std::endl;// 统计次数 
	std::cout<<accumulate(vec1.begin(),vec1.end(),0)<<std::endl;// 累加
	std::cout<<accumulate(mylist.cbegin(),mylist.cend(),std::string(""))<<std::endl;// 如果是累加字符串后一个参数要写成这样
	if(equal(vec1.begin(),vec1.end(),vec2.begin()))// 比较容器是否相等,第二个容器的大小不小于第一个 
		std::cout<<"equal!"<<std::endl;
	std::vector<double> vec3(5,1);
	fill(vec3.begin(),vec3.end(),2);// 全部填充2 
	//for(auto i : vec3)std::cout<<i<<" ";
	fill_n(vec3.begin(),3,6);// 前三个填充成6
	//for(auto i : vec3)std::cout<<i<<" ";
	//不管是fill还是fill_n,都要保证有足够的空间
	//但是使用back_inserter则是直接插入,不是覆盖原来的,没有这种限制
	std::vector<float> vec4={1.0,2.0};// empty
	auto it2=back_inserter(vec4);
	fill_n(it2,2,4.0);// 在后面插入两个4.0
	//for(auto i : vec4)std::cout<<i<<" ";
	replace(vec4.begin(), vec4.end(), 2.0, 3.8);//将2.0替换成3.8  
	//for(auto i : vec4)std::cout<<i<<" ";
	std::list<std::string> mylist2{"abc","abc","a","a","a","b"};
	//mylist2.unique();
	unique(mylist2.begin(),mylist2.end());// 算法库里的unique是把重复的放后面,不是真的删除 
	for(auto i : mylist2)std::cout<<i<<" ";
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值