我有两张地图,我需要找到差异并创建一个只有差异的新地图。不知道该怎么做。我尝试使用 set_difference 但并不真正了解它是如何工作的。任何帮助,将不胜感激。谢谢
// header file
typedef std::map<std::string, int> MapCol;
typedef std::map<std::string, MapCol> MapRow;
MapRow m_mapRows;
//.cpp fle
CheckForDifferences( const Table& rhs )
{
Table diffTable;
vector<string> v;
vector<string>::iterator it;
it=set_difference (m_mapRows.begin(), m_mapRows.end(), diffTable.m_mapRows.begin(), diffTable.m_mapRows.end, v.begin());
}
编辑:
std::set_difference( m_mapRows.begin(), m_mapRows.end(),
rhs.m_mapRows.begin(), rhs.m_mapRows.end(), diffTable.m_mapRows.begin());
好的,这就是我尝试的方法,但我得到了错误,第一个错误是错误 C2678: binary '=' : no operator found 它采用'const std::string' 类型的左操作数(或者没有可接受的转换)
有任何想法吗?