假设您有一个名为bundle
的结构,它由string
个对象组成。没有关于束将包含多少个字符串的准确知识,您需要为每个束生成标识号,以便区分它们。
例如,两个捆绑包有5个字符串对象,而这两个对象中只有四个是公共的。
注1:我需要一个标识号,因为在此过程中我会遇到很多捆,其中一些捆具有完全相同的字符串。
注2:我正在使用c ++,据我所知,在c ++中没有哈希或类似的东西。
How can we generate identification number ?
我想到的唯一解决方案是将字符串对象串联在一起。我认为没有其他解决方案。也许用另一种格式或数据结构表示字符串可以使生成ID更加容易。
答案 0 :(得分:-1)
您可以使用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;
}