如何在单个向量中查找匹配的元素

How to find matching elements in a single vector

本文关键字:元素 查找 单个 向量      更新时间:2023-10-16

我想生成元素在向量中不再出现的次数。向量中的元素必须由种子随机化,在本例中为 3。

例如,如果在大小为 30 的向量中再次显示数字 2、6 和 4,则 totalComplete 应为 27,因为 3 个数字重复出现。

#include <stdlib.h>
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
int main()
{
    vector<int> seats;
    int totalComplete = 0;
    srand(3);
    seats.resize(30);
    for(int k = 0; k < 20; k++){
        seats.at(k)=(rand()%30);
        cout << seats.at(k);
        cout <<" ";
        totalComplete++;
        for(int j = 0; j < 20; j++){
            if(j != k)
                if(seats.at(k) == seats.at(j))
                    totalComplete--;
        }
        cout<<endl;
    } 
    cout << totalComplete;
    return 0;
}

所以在我的代码中,随机放置在向量中的数字是 6 25 18 0 15 10 12 16 1 4 28 4 3 19 22 21 24 25 1 15。数字 25、15、1 和 4 重复它们,因此总数应为 16。但是,我的代码生成 0。我相信我检查数字是否重复的区域是错误的。

我的直接建议是将代码分成小块,并分别测试每个小块。我会从一个函数开始,只用随机数填充数组。然后我会编写一个函数来计算唯一条目。单独测试每一个,并检查你是否得到了你期望的。然后,当每个程序单独工作时,将它们放在一起以获得一个完整的程序,可以满足您的真正需求。