C++泛型算法简要整理

1、vector ivec;
//返回value出现的次数
count(ivec.begin(),ivec.end(),value);

2、以初值initvalue进行累加
accumulate(ivec.begin(),ivec.end(),initvalue);

3、范围赋值
fill(ivec.begin(),ivec.end,value);
ivec.begin()开始的n个元素赋值
fill_n(ivec.begin(),n,value);

4、find_first_of
string str1(“I am change”);
string str2(“about”);
int k=str1.find_first_of(str2);
在str1中寻找与str2任意元素匹配的元素,找到返回str1中第一个匹配的元素,否则返回str1.end()
ind_first_of(str1.begin(),str1.end(),str2.begin(),str2.end());

5、copy
list ilist(10,2);
vector ivec;此时ivec为空,使用back_inserter或insert创建并插入
copy(ilist.begin(), ilist.end(), back_inserter(ivec));
unique_copy不重复复制

6、replace
等于0的值替换为2
replace(ilist.begin(),ilist.end(), 0 ,2);

7、默认是升序,可以自定义排序方法
vector< myclass > cvect;
bool mycompare(const myclass & m1, const myclass & m2) {
return m1.second < m2.second;
}
sort(cvec.begin(), cvec.end(), mycompare);

8、unique无重复排序,将重复的元素放到后面,返回第一个重复元素的位置end_unique,可配合erase
vector::iterator end_unique = unique(words.begin(), words.end());
words.erase(end_unique, words.end());

7、find_if返回返回符合条件的迭代器,count_if返回符合条件的个数
vector svec;
vector::size_type size=count_if(svec.begin(), svec.end(), count);
bool count(const string &f)
{
return f.size()<6;
}
//找到value返回迭代器
find(svec.begin(), svec.end(), value) ;

8、插入
back_inserter创建使用push_back插入
front_inserter使用front_back
insert指定位置插入
vector ivec;
copy(ilist.begin(), ilist.end(), back_inserter(ivec));

insert(ivec.begin(),n,10);
int[] s = {1,2,3,4};
insert(ivec.begin(),s,s+4);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值