c++ primer第五版(中文)习题答案 第十章第二节第三小节-重排容器元素的算法

来源:互联网 发布:关公战秦琼 知乎 编辑:程序博客网 时间:2024/05/16 01:29

本博客知识记录自己学习中的笔记或者记录,如果有错误欢迎大家纠正。

本节初步了解泛型算法。

算法不能改变容器大小,切记

10.9实现你自己的elimDups,测试你的程序,分别在读取输入后,调用unique后以及调用erase后打印vector的内容。
代码如下

#include <vector>#include <string>#include "stdlib.h"#include <iostream>#include <iterator>#include <algorithm>void pritef(std::vector<std::string> &word){    for (auto s : word)        std::cout << s<<" ";    std::cout << std::endl;}void elimDups(std::vector<std::string> &word){    //排序    sort(word.begin(), word.end());    std::cout <<"sort: ";    pritef(word);    auto end_unique = unique(word.begin(), word.end());    std::cout << "unique: ";    pritef(word);    word.erase(end_unique, word.end());    std::cout << "erase: ";    pritef(word);}int main(){    std::vector<std::string>vec;    std::string s = "";    while (std::cin >> s)        vec.push_back(s);    elimDups(vec);    system("pause");    return 0;}

输出结果为
这里写图片描述

10.9算法不改变容器大小的原因是什么?
可以参考其他人的帖子http://bbs.csdn.net/topics/210048204

0 0
原创粉丝点击