在vector容器中,存入的内容难免会出现重复,那么如何快速输出或提前非重复的那些数据呢,即重复的数据只输出一次,直观的方法是每次输出都要通过循环比较是否已经输出过,这种方法还是比较费时的,可以利用unique函数简化代码,例子:

#include "stdafx.h"

#include <iostream>

#include <vector>

#include <algorithm>

#include <string>

using namespace std;

int_tmain(int argc, _TCHAR* argv[])

{

strings;

unsigned int size =0;

vector<string>v;

cout<<"输入个字符串:"<<endl;

while(size<5)

{

cin>>s;

v.push_back(s);

++size;

}

cout<<"输入的字符串为:"<<endl;

copy(v.begin(),v.end(),ostream_iterator<string>(cout,"\n"));

cout<<"排序后的结果为:"<<endl;

sort(v.begin(),v.end());

copy(v.begin(),v.end(),ostream_iterator<string>(cout,"\n"));

cout<<"不输出重复的结果:"<<endl;

vector<string>::iteratore = unique(v.begin(),v.end());

for(vector<string>::iterator b=v.begin(); b!=e;b++)

{

cout<<*b<<endl;

}

//再次输出排序后的结果

cout<<"再次输出排序后的结果:"<<endl;

copy(v.begin(),v.end(),ostream_iterator<string>(cout,"\n"));

return 0;

}

输出结果为:

如何快速方便的输出向量vector容器中不重复的内容的更多相关文章

  1. STL 查找vector容器中的指定对象:find()与find_if()算法

    1 从vector容器中查找指定对象:find()算法 STL的通用算法find()和find_if()可以查找指定对象,参数1,即首iterator指着开始的位置,参数2,即次iterator指着停 ...

  2. 从vector容器中查找一个子串:search()算法

    如果要从vector容器中查找是否存在一个子串序列,就像从一个字符串中查找子串那样,次数find()与find_if()算法就不起作用了,需要采用search()算法:例子: #include &qu ...

  3. vector容器中添加和删除元素

    添加元素: 方法一: insert() 插入元素到Vector中 iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入 ...

  4. STL 统计vector容器中指定对象元素出现的次数:count()与count_if()算法

    1 统计vector向量中指定元素出现的次数:count()算法 利用STL通用算法统计vector向量中某个元素出现的次数:count()算法统计等于某个值的对象的个数. #include &quo ...

  5. SQL多表查询,消除表中的重复的内容

    看到朋友再写一个SQL语句:两个表a1表中有SN.SN2.TN,b1表有SM.SM2.TN2,若a1的SN中的数据和b1的SM中的数据是一致的,那么将a1中对应的数据修改成b1中对应的数据. upda ...

  6. 利用copy函数简单快速输出/保存vector向量容器中的数据

    如果要输出vector中的数据我们可以通过循环语句输出,更加简便的方法是利用copy函数直接输出,例子: #include "stdafx.h" #include <iost ...

  7. STL中vector容器实现反转(reverse)

    vector容器中实现可以通过以下两种方式实现: #include "stdafx.h" #include <vector> #include <iostream ...

  8. (转载)C++STL中vector容器的用法

     vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vec ...

  9. C++STL库中vector容器常用应用

    #include<iostream> #include<vector> #include<algorithm> using namespace std; int m ...

随机推荐

  1. HDU2546:饭卡(01背包)

    HDU2546:饭卡 http://acm.hdu.edu.cn/showproblem.php?pid=2546 当我们遇到问题选择物体的价值和顺序相关时就需要,排完序后对其01处理.这题因为当我们 ...

  2. UVa1586 Molar mass

    #include <stdio.h> int GetQuantity(char* q, char** p){    int quantity = 0;    while (*q & ...

  3. USACO Section 5.4 TeleCowmunication(最小割)

    挺裸的一道最小割.把每台电脑拆成一条容量为1的边,然后就跑最大流.从小到大枚举每台电脑,假如去掉后 最大流=之前最大流+1,那这台电脑就是answer之一了. -------------------- ...

  4. MySQL 事物

    BEGIN DECLARE result INTEGER DEFAULT 0; -- 标记是否出错 DECLARE t_error INTEGER DEFAULT 0; -- 如果出现sql异常,则将 ...

  5. AWT和Swing

    布局分类 一.流式布局 二.边界布局 三.网格布局 四.卡片布局 五.坐标式布局 随意布置控件位置. 六.混合布局

  6. js中||和&&的用法

    在js中&&.||不一定都是用来判断一个表达式的逻辑值是true.false,更多的是用来依据真值或者假值执行相应操作! a() && b() :如果执行a()后返回t ...

  7. iframe 自适应高度、宽度

    示例: <iframe id="zyms" frameborder="0" scrolling="yes" style="w ...

  8. android screenOrientation

    Activity: android:screenOrientation 横(landscape)竖(portrait)屏显示. 如果想让它一直是横屏显示的话,xml:android:screenOri ...

  9. 转: 深入理解 AngularJS 的 Scope

      查看 DEMO.参考 StackOverflow. ng-switch ng-switch 的原型继承和 ng-include 一样.所以如果你需要对基本类型数据进行双向绑定,使用 $parent ...

  10. 手机SIM卡介绍 三类不同标准的SIM卡

    SIM卡的全称是Subscriber Identity Module,翻译过来也叫客户识别模块,也叫做智能卡.用户身份识别卡.这块小小的芯片可以存储用户的号码.信息,以及一定数量的联系人数据,配合我们 ...