Просто
if(*newData < (*current->data))
при условии, что оператор <перегружен для типа данных </p>
Минимальный идиоматический способ обеспечения std :: less <> совместимого слабого общего порядка (оператор Iow Implement <): </p>
struct Data
{
int id;
std::string other;
// details omitted
bool operator<(const Data& b) const
{
if (id < rhs.id)
return true;
if (id > ths.id)
return false;
return (other < b.other);
}
};
Если у вас большая / сложная структура и все участвующие члены имеют сравнение, определенное для их типов, вы можете сделать этот хитрый трюк с TR1, Boost или C ++ 11 Tuples:
#include <tuple>
// ...
bool operator<(const Data& b) const
{
return std::tie(id,other)< std::tie(b.id,b.other);
}