首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unordered_set故障

Unordered_set故障
EN

Stack Overflow用户
提问于 2022-11-07 21:44:28
回答 1查看 47关注 0票数 -3

我需要帮助,我的程序工作如下:首先,数据集的数量是在输入时提供的。然后指示每组的大小。

我的任务是写每一个数字,但没有重复的顺序,他们被输入。例如,我们有三个数字2,10,2,所以答案应该是: 2,10。

我的问题是,unordered_set有时会对这些数字进行排序,有时则不会。我不知道为什么会发生这种事。

这是我的工作:

代码语言:javascript
复制
`#include <iostream>
#include <vector>
#include<unordered_set>

using namespace std;

int main()
{
    int t,n,l;
    unordered_set<int> Uniq;
    unordered_set<int>::iterator it;
    vector<int> new_line;
    vector<int>Answer;
    cin >> t;
    for (int i = 0; i < t; i++)
    {
        cin >> n;
        for (int j = 0; j < n; j++)
        {
            cin >> l;
            Uniq.insert(l);
        }
        for (it = Uniq.begin(); it != Uniq.end(); it++)
        {
            Answer.push_back(*it);
        }
        new_line.push_back(Uniq.size());
        Uniq.clear();
    }
    int g = 0,h=1;
    for (int i = 0; i < Answer.size(); i++)
    {
        if (h == new_line[g])
        {
            h = 1;
            g++;
            cout << Answer[i] << endl;
        }
        else
        {
            cout << Answer[i] << " ";
            h++;
        }
    }
}`

我尝试了很多事情,但都没有帮助。我是一名学生,这是我第一次使用unordered_set,甚至是普通的集合。

EN

回答 1

Stack Overflow用户

发布于 2022-11-07 23:02:08

您可以使用vectorunordered_set的组合。使用vector按照输入的顺序存储数字,并使用unordered_set跟踪已经输入的数字。示例:

代码语言:javascript
复制
#include <iostream>
#include <unordered_set>
#include <vector>

int main() {
    int t;
    if (not(std::cin >> t) || t < 1) return 1;

    std::unordered_set<int> Uniq;
    std::vector<int> Answer;
    int n;
    
    for (int i = 0; i < t; i++) {
        if (not(std::cin >> n)) return 1;

        auto [it, inserted] = Uniq.insert(n);

        // only store `n` if it was inserted in the `unordered_set`.
        // (duplicates will not be inserted):
        if (inserted) Answer.push_back(n);
    }

    for (int value : Answer) {
        std::cout << value << '\n';
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74353263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档