Генерация идентификационного номера набора строк - PullRequest
0 голосов
/ 07 декабря 2018

Предположим, что у вас есть структура с именем bundle, и она состоит из string объектов.Нет точных сведений о том, сколько строк будет содержать пакет, и вам необходимо сгенерировать идентификационный номер для каждого пакета, чтобы можно было их дифференцировать.

Например, два пакета имеют 5 строковых объектов, и только четыре из них являются общими для этих двух объектов.

Примечание 1. Мне нужен идентификационный номер, потому что впроцесс и некоторые из них имеют точно такие же строки.

Примечание 2: я работаю на c ++, и, насколько мне известно, в c ++ нет хэшируемого или чего-то подобного.

How can we generate identification number ?

Единственное решениечто пришло мне в голову - объединить строковые объекты в связку.Я думаю, что нет другого решения.Возможно, представление строк в другом формате или структура данных может упростить создание идентификатора.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете использовать static int counter:

#include <iostream>
static int counter = 0;
struct bundle
{
    bool operator==(bundle& other){ return this->id == other.id; }

    int id = counter++;
    std::string a, b, c, d, e;
};

int main()
{
    bundle b1, b2, b3, b4, b5;
    std::cout << b1.id << ' ' << b5.id << std::endl;    // 0 4
    std::cout << (b1 == b5) << std::endl;               // 0
    b1 = b5;
    std::cout << (b1 == b5) << std::endl;               // 1
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...