STL 几个函数的用法

原创 2015年07月07日 15:57:12
#include <iostream>
#include <cassert>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
 using namespace std;

 int main()
{
    //cout<<"Illustrating the generic unique algorithm."<<endl;
    const int N=11;
    int array1[N]={1,2,0,3,3,0,7,7,7,0,8};
    vector<int> vector1;
    for (int i=0;i<N;++i)
        vector1.push_back(array1[i]);

    vector<int>::iterator new_end;
    new_end=unique(vector1.begin(),vector1.end());    //"删除"相邻的重复元素
    cout<<*new_end<<endl;
    for(int i=0;i<=N;i++)
        cout<<vector1[i]<<' ';
    cout<<endl;
    assert(vector1.size()==N);

    vector1.erase(new_end,vector1.end());  //删除(真正的删除)重复的元素
    copy(vector1.begin(),vector1.end(),ostream_iterator<int>(cout," "));
    cout<<endl;

    return 0;
}



//使用unique_copy算法
//将一个list对象中不重复的元素赋值到一个空的vector对象中
#include<iostream>
#include<list>
#include<vector>
#include<algorithm>
using namespace std;

int main()
{
    int ia[7] = {5 , 2 , 2 , 2 , 100 , 5 , 2};
    list<int> ilst(ia , ia + 7);
    vector<int> ivec;

    //将list对象ilst中不重复的元素复制到空的vector对象ivec中
    //sort(ilst.begin() , ilst.end());  //不能用此种排序,会报错
    ilst.sort();  //在进行复制之前要先排序,切记
    unique_copy(ilst.begin() , ilst.end() , back_inserter(ivec));

    //输出vector容器
    cout<<"vector: "<<endl;
    for(vector<int>::iterator iter = ivec.begin() ; iter != ivec.end() ; ++iter)
        cout<<*iter<<" ";
    cout<<endl;

    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

STL copy()函数用法

闲言少叙,上代码: #include #include #include using namespace std; int main () { int src[]= {1, 2, 3...
  • ozwarld
  • ozwarld
  • 2012年12月03日 14:53
  • 10220

STL vector用法介绍+ STL 常用函数用法

介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。...
  • hhu1506010220
  • hhu1506010220
  • 2016年07月20日 20:23
  • 763

STL中与二分查找相关的4个函数

二分查找的原理非常简单,但写出的代码中很容易含有很多Bug,二分查找一文中讲解过如何实现不同类型的二分查找,但是否一定要自己去实现二分查找呢?答案显然是否定的,本文将讲解STL中与二分查找有关函数的具...
  • hzj451210895
  • hzj451210895
  • 2015年04月18日 10:39
  • 859

stl reverse 函数

功能:翻转字符串 ,翻转数组, 用于STL的翻转。 头文件: 例子: #include #include #include #include #include #include #includ...
  • u014427196
  • u014427196
  • 2015年02月04日 13:49
  • 1157

STL vector中的at方法(20)

public member function std::vector::at reference at (size_type n); const_reference a...
  • guang_jing
  • guang_jing
  • 2014年08月16日 01:04
  • 2356

STL 头文件一览表

C++标准库的内容分为10类:C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串 C6.容器 C7.迭代器支持 C8.算法 C9.数值操作 C10.本地化 >>> C1 与语...
  • ba_jie
  • ba_jie
  • 2011年04月21日 11:13
  • 3673

STL中string用法总结

1.数值类型转换为string1.1使用函数模板+ostringstream使用函数模板将基本数据类型(整型、字符型、实型、布尔型)转换成string。//ostringstream对象用来进行格式化...
  • gyh_420
  • gyh_420
  • 2017年08月15日 16:45
  • 121

c++ STL中栈stack的用法

1.声明一个stack    stack s1;    stack s2; 2.stack中的操作     stack s;    s.push(x)      无返回值,将元素x压栈 ...
  • yibcs
  • yibcs
  • 2013年10月26日 16:53
  • 4823

C++ STL Merge的用法

merge函数的作用是:将两个有序的序列合并为一个有序的序列。函数参数:merge(first1,last1,first2,last2,result,compare); //firs1t为第一个容器...
  • shuyun123456789
  • shuyun123456789
  • 2014年04月05日 15:12
  • 4781

c++ STL的list用法总结

头文件 #include   声明一个int型的list:list a; 1、list的构造函数 lista{1,2,3} lista(n) //声明一个n个元素的列表,每个元素都是0...
  • xiaoquantouer
  • xiaoquantouer
  • 2017年04月21日 22:02
  • 2749
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STL 几个函数的用法
举报原因:
原因补充:

(最多只允许输入30个字)