我最近开始用c ++编写代码,现在我正在处理结构......这就是我的问题
这是我的基本结构。
struct myStruct
{
string A;
int B;
} myStruct[100];
我想将' myStruct
'(对于结构数组中的所有元素)中的字符串传递给排序函数(我使用内置排序函数)。我该怎么做?我希望所有的字符串排序......
我已尽力解释我的问题。我希望你能得到它并帮助我..
答案 0 :(得分:3)
如果我理解正确,并且您希望根据每个结构中的字符串A
对数组进行排序,则需要通知std::sort
如何比较结构。
一种方法是为自定义类型添加operator<
。
bool operator< (myStruct const& lhs, myStruct const& rhs) {
return lhs.A < rhs.A;
}
另一种方法是传递std::sort
比较函数对象:
std::sort( std::begin(myArray), std::end(myArray),
[](myStruct const& lhs, myStruct const& rhs)
{ return lhs.A < rhs.A; } );