Предположим, что у вас есть структура под названием bundle
и состоит из string
объекты. Нет точных сведений о том, сколько строк будет содержать пакет, и вам необходимо сгенерировать идентификационный номер для каждого пакета, чтобы можно было их дифференцировать.
Например, два пакета имеют 5 строковых объектов, и только четыре из них являются общими для этих двух объектов.
Примечание 1: мне нужен идентификационный номер, потому что я сталкиваюсь с множеством пакетов в процессе, и некоторые из них имеют точно такие же строки.
Примечание 2: я работаю на c ++, и, насколько я знаю, в c ++ нет хэшируемого или чего-то подобного.
How can we generate identification number ?
Единственное решение, которое пришло мне в голову — это объединить строковые объекты в связку. Я думаю, что нет другого решения. Может быть, представление строк в другом формате или структура данных может облегчить создание идентификатора.
Вы могли бы использовать 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;
}
Других решений пока нет …