배열의 고유 문자열 수를 계산하는 간단한 프로그램을 만들려고했지만 문자열을 더 반복하면 어떻게해야합니까? 두 번 이상.배열의 고유 문자열 수를 계산합니다.
다음은 "Tommy"가 배열에 3 번 존재하는 코드 예입니다. 따라서 고유하지 않은 수를 세는 경우 3이되어야하며 고유 한 이름은 2 개뿐입니다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string stringArray[5] = { "Tommy", "Sammy", "Tommy", "Wally", "Tommy" }, repeatedArray[5];
int instance = 0, notUnique = 0, repeated = 0;
for (int i = 0; i < 5; i++)
{
for (int j = i + 1; j < 5; j++)
{
if (stringArray[i] == stringArray[j] && stringArray[i] != repeatedArray[repeated])
{
instance++;
}
}
if (instance == 1)
{
notUnique += 2;
}
else if (instance >= 2)
{
notUnique += instance + 1;
repeatedArray[repeated] = stringArray[i];
repeated++;
}
instance = 0;
}
cout << "Number of non-unique strings in array is :" << notUnique << endl;
}
정렬 배열하고 식별 중복 쉽고 효율적으로 될 것이다. – user3553031
'size_t unique_count = std :: set (stringArray, stringArray + 5) .size();' –