gpt4 book ai didi

c++ - Unique_copy 未返回预期输出

转载 作者:行者123 更新时间:2023-11-30 02:28:00 24 4
gpt4 key购买 nike

我有这个简单的代码,我知道我一定犯了一些愚蠢的错误:

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<iterator>
using namespace std;

int main()
{
vector<string> coll{"one", "two", "two", "three", "four", "one"};
vector<string> col2(coll.size(), "");
unique_copy(coll.cbegin(), coll.cend(), col2.begin());
for(const auto& ele : col2)
cout<<" - "<<ele;
cout<<endl;
return 0;
}

输出--一-二-三-四-一-

我期待:- - 一 - 二 - 三 - 四 - -

我错过了什么?

编辑:正如 aswer 中指出的那样 - 该死,我错过了 unique_copy 本身的定义。

除了将它们插入 ordered set 或在唯一拷贝之前排序之外,是否有任何功能可以执行我期望的操作(删除唯一元素而不考虑相邻元素),因为我想保持顺序。

最佳答案

std::unique_copy :

Copies the elements from the range [first, last), to another range beginning at d_first in such a way that there are no consecutive equal elements.

one 在您的情况下不是连续的。

尝试:

vector<string> coll{"one", "one", "two", "two", "three", "four"};

你会发现输出为

- one - two - three - four -  - 

关于c++ - Unique_copy 未返回预期输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41145466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com