返回信息流如图10.27,我尝试用流迭代器创建了一个vec,想试试unique_copy,把去重复段移到一个空的vec,但出错了,我查了半天也不知道错哪儿了,想问问大佬们我错在哪儿了。
我调试了一下,只有unique出错,我在想很可能是我对这个函数的理解错了。
#include<vector>#include<list>#include<deque>#include<array>#include<forward_list>#include<string>#include<numeric>#include<iterator>#include<algorithm>#include<functional>using namespace std;using namespace placeholders;
int main()
{
ifstream is("test.txt");//读取了一串int数 istream_iterator<int> in(is);//绑定流迭代器 istream_iterator<int> end;
cout << accumulate(in, end, 0) << endl;//累和 vector<int> s(in, end);//利用流迭代器创建一个新的vec
vector<int> ss;//空vec
sort(s.begin(),s.end());//排序
unique_copy(s.begin(), s.end(), ss.begin());//就是这句我搞不太明白怎么理解
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #101131同步于 2021/8/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于unique_copy的问题
Seedbanboo
2021/8/18镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
补充说明(还是得多看看文档[ema1]
【 在 TroyAchilles 的大作中提到: 】
: 除了楼上说的resize之外,accumulate的时候已经从流迭代器中获取数据了,之后你会发现++in=end,所以你这给s赋了个寂寞
[em21][em21]那我再给补个文档
http://www.cplusplus.com/reference/numeric/accumulate/?kw=accumulate
【 在 baymaxhwy 的大作中提到: 】
: 补充说明(还是得多看看文档[ema1]
好的,谢谢,我再多试试[ema3]
【 在 huangsiyuan (爱吃拌粉瓦罐汤) 的大作中提到: 】
: 数组ss需要定义大小,可以ss.resize(s.size())试试
感谢[ema3]
【 在 TroyAchilles (TroyAchilles) 的大作中提到: 】
: [em21][em21]那我再给补个文档
: http://www.cplusplus.com/reference/numeric/accumulate/?kw=accumulate