C++:成员函数算法运算

问题

使用链表类型list或forward_list成员函数算法时,其会改变底层的容器.这样做,会让指向被删除元素的迭代器、引用和指针都会失效!而使用失效的迭代器、指针或引用时严重的运行时错误!!

使用list成员函数算法编写一个单词去重的程序.

C++.
image-2134

源代码


/*************************************************************************
> File Name: test.10.42.cpp
> Author: puruidong
> Mail: 1@w1520.com
> Created Time: 2014年06月24日
************************************************************************/

#include
#include #include
#include
using namespace std;
using namespace std::placeholders;

/****************************************

使用list成员函数算法编写一个单词去重的程序.

****************************************************/

bool issh(const string &s1,const size_t sz)
{
return s1.size()>sz;
}

//使用成员函数算法.
void elis(list &lst,size_t sz)
{
lst.sort();
lst.unique();
auto rf = find_if(lst.begin(),lst.end(),bind(issh, _1 , sz ));
//auto ws = lst.end()-rf;
cout << "******************************\n下面是大于" << sz << "的元素\n**********************************" << endl; for_each(rf,lst.end(),[](const string &a){ cout << a << " ";}); cout << endl; } int main() { cout << "使用list替代vector实现去重的程序:" << endl; string pa; list lst;
while(cin >> pa)
{
lst.push_back(pa);
}
elis(lst,5);
return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据