c++ 我怎样才能做一个向量来检查其中是否有相等的数字?[closed]

fd3cxomn  于 2022-12-24  发布在  其他
关注(0)|答案(3)|浏览(147)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

2天前关闭。
Improve this question
我想创建一个向量,它会显示里面是否有相等的数字,如果有,输出会显示,如果没有相反的数字,就有相等的数字,
例句:A(2,4,2,7)有相等的数
我正在尝试任何解决方案,但不知道如何做到这一点,我在数组的开始。

ohfgkhjo

ohfgkhjo1#

使用std::set,从你的向量填充它,比较大小是否相等。如果不相等,你有重复的。

std::vector<int> values{1,1,2,3,4,5,5}; 

std::set<int> tmp{values.begin(),values.end()}; 

bool duplicates = (values.size() != tmp.size());
fwzugrvs

fwzugrvs2#

你可以尝试先对向量排序,然后遍历向量并检查current vector[i]是否== vector[i+1]。

vector<int> yourVector{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
sort(yourVector.begin(), yourVector.end(), greater<int>());

int equalNum = 0;

for(int i = 0; i < yourVector.size()-1; i++)
{
    if(yourVector[i] == yourVector[i+1])
    {
      equalNum++;
    }
}

if(equalNum > 0)
{
  std::cout << "There are: " << equalNum << "equal numbers" << std::endl;
}else{
  std::cout << "There no equal numbers" << std::endl;
}

这只是一些代码,我刚刚提出还没有测试过。

tvmytwxo

tvmytwxo3#

使用Map可能是个好主意:

unordered_map<int, int> numbers;

++numbers[2];
++numbers[4];
++numbers[2];
++numbers[7];

现在您可以检查每个号码的数量:

cout << "Number of twos: " << numbers[2] << '\n';

相关问题