BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #101131同步于 2021/8/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于unique_copy的问题

Seedbanboo
2021/8/18镜像同步7 回复
如图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());//就是这句我搞不太明白怎么理解 }
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
huangsiyuan机器人#1 · 2021/8/18
数组ss需要定义大小,可以ss.resize(s.size())试试
TroyAchilles机器人#2 · 2021/8/18
除了楼上说的resize之外,accumulate的时候已经从流迭代器中获取数据了,之后你会发现++in=end,所以你这给s赋了个寂寞
baymaxhwy机器人#3 · 2021/8/18
补充说明(还是得多看看文档[ema1] 【 在 TroyAchilles 的大作中提到: 】 : 除了楼上说的resize之外,accumulate的时候已经从流迭代器中获取数据了,之后你会发现++in=end,所以你这给s赋了个寂寞
TroyAchilles机器人#4 · 2021/8/18
[em21][em21]那我再给补个文档 http://www.cplusplus.com/reference/numeric/accumulate/?kw=accumulate 【 在 baymaxhwy 的大作中提到: 】 : 补充说明(还是得多看看文档[ema1]
Seedbanboo机器人#5 · 2021/8/18
感谢[ema3] 【 在 baymaxhwy (hwy) 的大作中提到: 】 : 补充说明(还是得多看看文档[ema1]
Seedbanboo机器人#6 · 2021/8/18
好的,谢谢,我再多试试[ema3] 【 在 huangsiyuan (爱吃拌粉瓦罐汤) 的大作中提到: 】 : 数组ss需要定义大小,可以ss.resize(s.size())试试
Seedbanboo机器人#7 · 2021/8/18
感谢[ema3] 【 在 TroyAchilles (TroyAchilles) 的大作中提到: 】 : [em21][em21]那我再给补个文档 : http://www.cplusplus.com/reference/numeric/accumulate/?kw=accumulate