Форум программистов, компьютерный форум CyberForum.ru

Определение хэш-функции для контейнера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Есть ли смысл в изучении C++ http://www.cyberforum.ru/cpp-beginners/thread1760119.html
Есть ли смысл учить C++ без знаний С ? Все равно ведь придется учить С даже если ты вдоль изучишь С++ если ты новичок в этом деле. Объясните пожалуйста в чем разница и что изменится в случае если ты изучишь в первую очередь С++ нежели Си.
C++ Исправить код, взаимодействующий с игрой Counter-Strike Здравствуйте, не могу понять что я не так делаю, вылазят ошибки не объявлен идентификатор С2065 посмотрите пожалуйста код приложу ниже. #include "stdafx.h" #include "include.h" using namespace std; Utils utils; http://www.cyberforum.ru/cpp-beginners/thread1760106.html
"Нарушение прав доступа при чтении по адресу 0x00000000" C++
код: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> int strtoint(char *s) { int temp = 0; int i = 0; int sign = 0; if (s == '-') /*на этой строчке вылетает*/ {
C++ Подключить библиотеку odeint к Xcode
Здравствуйте, я новичок в Xcode (и вообще в программирований на С++). Подскажите пожалуйста, как подключить библиотеку odeint (http://headmyshoulder.github.io/odeint-v2/) к (консольному) проекту в Xcode ?
C++ Заполнить двумерный массив размером 5 на 5 по спирали http://www.cyberforum.ru/cpp-beginners/thread1760093.html
Заполнить двумерный массив таким образом 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9
C++ Заполнить матрицу по спирали значениями, полученными от пользователя Создать двухмерный массив по спирали любого размера введённым пользователем с клавиатуры подробнее

Показать сообщение отдельно
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 100
11.06.2016, 12:58     Определение хэш-функции для контейнера
На просторах stackoverflow нашел следующую реализацию для std::аrrаy:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace std
{
    template<typename T, size_t N>
    struct hash<аrrаy<T, N> >
    {
        typedef аrrаy<T, N> argument_type;
        typedef size_t result_type;
 
        result_type operator()(const argument_type& a) const
        {
            hash<T> hasher;
            result_type h = 0;
            for (result_type i = 0; i < N; ++i)
            {
                h = h * 31 + hasher(a[i]);
            }
            return h;
        }
    };
}
Возникли следующие вопросы:
1. Правильно ли определена эта функция?
2. Что значит 31 в 15 строке?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru