现在的位置: 首页 > 综合 > 正文

C++容器通用算法

2012年10月01日 ⁄ 综合 ⁄ 共 1297字 ⁄ 字号 评论关闭

seven让我把C++ primer第四版算法这张好好看看,我看完后就摘抄了这么点而已

1、find
vector<int>::const_iterator result=find(vec.begin(),vec.end(),search_value);

int a[6];
int *result=find(a,a+6,search_value);

2、accumulate
int sum=accumulate(vec.begin(),vec.end(),42)//sum为vec元素之和再加上42

string sum = accumulate(v.begin(), v.end(), string("")); //将v中元素拼接起来

3、find_first_of
int result=str.find_first_of("asdasd"); 
//找到第一个引用之处,这里是只需要匹配一个字母即可

4、fill
fill(vec.begin(),vec.end(),0) //把元素全部置0

5、fill_n
fill_n(vec.begin(),10,0) //从迭代器指向的元素开始,将指定数量的元素设置为给定的值
fill_n (back_inserter(vec), 10, 0); // 在vec结尾添加十个元素,相当于调用push_back

6、copy
vector<int> ivec;
copy(list.begin(),list.end(),back_inserter(ivec));
//copy 从输入范围中读取元素,然后将它们复制给目标 ivec。

7、replace
replace(list.begin(),list.end(),0,42) //将每一个等于第一个值得元素替换为第二个值

8、replace_copy
vector<int> ivec;
replace_copy (ilst.begin(), ilst.end(),back_inserter(ivec), 0, 42);
//调用该函数后,ilst 没有改变,ivec 存储ilst一份副本,而ilst内所有的0在ivec 中都变成了42。

9、sort
sort (beg, end); // 按照<符号排序         

bool isShorter(const string &s1, const string &s2)
 {
     return s1.size() < s2.size();
 }
sort(words.begin(),words.end(),isShorter)

10、stable_sort
stable_sort(words.begin(), words.end(), isShorter);

11、count_if
bool GT6(const string &s)
{
    return s.size() >= 6;
}
vector<string>::size_type wc =count_if(words.begin(), words.end(), GT6);

12、reverse
reverse(beg, end); //实现数据反转插入

13、reverse_copy
reverse_copy(beg, end, dest); //逆序拷贝到新的地址

抱歉!评论已关闭.