Хеши




Для решения удобно воспользоваться хеш-функцией, которая возвращает уникальное значение для каждой строки (хеш).
В С++ 11 есть встроенное средства для получения хеша: hash
В дальнейшем для подсчета количества хешей лучше использовать хеш-таблицу unordered_map, которая тоже появилась в С++ 11. Подробнее про использование map можно узнать в курсе Динамические структуры данных -> Ассоциативные массивы: map.

Пример получения хеша из строки "test":

hash<string> hash_fn;
size_t str_hash = hash_fn("test");
cout<<str_hash;
			

В результате будет выведено: "2949673445", таким образом от каждой уникальной строки можно получить уникальный хеш, который можно использовать в качестве ключа в unordered_map.

Task
Дано N строк. Вывести количество уникальных строк.

Ввод Вывод
3
test
test2
test
2
4
1test
test
test1
test
3

C++
Write a program below
#include <iostream>
#include <string>
#include <algorithm>
#include <map>
#include <unordered_map> 

using namespace std;

	int main(){
		int N;
		string s;
		cin >> N;
		unordered_map<size_t, int> mymap;

		for (int i = 1; i <= N; i++)
		{  
             }       
        cout << mymap.size();
	return 0;
	}  
Your last submission is saved in the editor window.
     

Results:

All results: