C++:我如何计算向量中的唯一元素? 我有这个C++代码:

C++:我如何计算向量中的唯一元素? 我有这个C++代码:,c++,C++,我需要计算vek[I].szulev中唯一元素的数量 请帮帮我,我该怎么做?这里有一个简单的方法来计算向量中的唯一值: using Size = ptrdiff_t; template< class Item > auto n_unique_items( vector<Item> const& v ) -> Size { return set<Item>{ v.begin(), v.end() }.size(); } 因为您坚持使用代

我需要计算vek[I].szulev中唯一元素的数量


请帮帮我,我该怎么做?

这里有一个简单的方法来计算向量中的唯一值:

using Size = ptrdiff_t;

template< class Item >
auto n_unique_items( vector<Item> const& v )
    -> Size
{ return set<Item>{ v.begin(), v.end() }.size(); }

因为您坚持使用代码,所以仍然可以使用std::set进行计数

这一切归结为:

#include <set>
#include <iostream>

void count_items(szemelyadat* vek, int elemszam)
{
    std::set<int> counter;
    for (int i = 0; i < elemszam; i++)
          counter.insert(vek[i].szulev);
    std::cout << "The number of unique items is " << counter.size();
}

如果您在填写vektor后调用计数项,则这将为您提供vektor中szulev的唯一编号。

包括问题中的代码。不要链接到它。我假设你被禁止使用std::map,因为你没有使用std::vector。你的问题标题有误导性,因为你的程序中没有使用vector。如果你真的在使用std::vector,那么整个程序是两行:std::vector v={1,2,3,1,1,3};std::可以,但我需要这样做,我不能在任务中使用vector。如果你觉得很难适应,请问一个新问题。无论如何,您询问了如何计算向量中的唯一项。我忽略了你的示例代码,因为它没有包含向量。很抱歉编辑和回滚,我还没有喝到我的第一杯咖啡。只是抱歉。
#include <set>
#include <iostream>

void count_items(szemelyadat* vek, int elemszam)
{
    std::set<int> counter;
    for (int i = 0; i < elemszam; i++)
          counter.insert(vek[i].szulev);
    std::cout << "The number of unique items is " << counter.size();
}