由于对一道题目的错误理解,导致突然萌发了对与map的用法的开发,就是在形如 map< Node, int >,那么只要在重载Node的 '<'操作符时只针对个别元素,那么这些特别元素相同的结构体会被map视为相同的。
代码如下:
#include <map>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
struct Node
{
int a, b;
string str;
Node( int n, int m, string x )
{
a= n, b= m;
str= x;
}
Node(){}
bool operator < ( const Node &t ) const
{
return str< t.str;
}
}a( 1, 2, "abc" ), b( 123, 312, "abc" );
int main()
{
map< Node, int >mp;
mp[ a ]= 1;
if( mp.count( b ) )
{
printf( "相同\n" );
}
else
{
printf( "不祥同\n" );
}
}