Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions PL_9.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#include <iostream>
#include <string>


std::hash<std::string> hash;

template<typename type>
size_t hash_summarizer(type *array, int n)
{
size_t super_hash = 0;
for (int i=0; i < n; ++i)
{
super_hash+=(i*hash(std::to_string(array[i])));

}
return hash(std::to_string(super_hash));
}

size_t hash_summarizer(std::string *array, int n)
{
size_t super_hash = 0;
for (int i=0; i < n; ++i)
{
super_hash+=(i*hash(array[i]));

}
return hash(std::to_string(super_hash));
}


int main()
{
int n;
std::cout << "Enter size of array: ";
std::cin >> n;
//double *a = new double[n];
//std::string *a = new std::string[n];
char *a = new char[n];
std::cout <<"\nEnter data:\n\n";
for (int i=0; i<n; ++i)
{
std::cout << "[" << i << "]: ";
std::cin >> a[i];
}
std::cout << "\nHash: " << hash_summarizer(a,n)
<< "\nHash repeat: " << hash_summarizer(a,n);
}
21 changes: 1 addition & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,3 @@
# Лабораторная работа 9

## Шаблонная функция

Реализовать шаблонную функцию, соответствующую варианту.
Работу функции следует проиллюстрировать в main.

### Варианты:

Реализовать шаблонную функцию для:

1. проверки того, отсортирован ли данный массив по возрастанию или по убыванию;
2. записи элементов массива в файл, разделяя их заданным пользователем строковым значением;
3. подсчета хеш-суммы массива данных (алгоритм выбрать самостоятельно и объяснить на защите);
4. получения нового массива с уникальными элементами из данного массива;
5. для нахождения минимального и максимального элемента в массиве и получения их индексов.

### Как определить свой вариант:

(<Номер в списке в таблице ЯП СКБ22*> mod 5) + 1

**Пожалуйста, внимательно проверяйте свой вариант, выполнение не своего варианта не принимается!**
# <Панчоян Сергей> + <СКБ223(2)> + <3 вариант>