typedef struct HelloWorldPtr clientPtr; stdstring clientName; stdstring clientCbAddr; int task_num;tag_ClientCBS;static stdvectortag_ClientCBS gCallbackClients; 找出最小的task_num的进行排序生成另一
以下是使用C++98标准实现的代码:
#include <iostream>
#include <vector>
#include <algorithm>
typedef struct
{
HelloWorldPtr clientPtr;
std::string clientName;
std::string clientCbAddr;
int task_num;
}tag_ClientCBS;
bool compareTaskNum(const tag_ClientCBS& client1, const tag_ClientCBS& client2) {
return client1.task_num < client2.task_num;
}
int main() {
std::vector<tag_ClientCBS> gCallbackClients;
// 添加一些示例数据
tag_ClientCBS client1;
client1.task_num = 5;
gCallbackClients.push_back(client1);
tag_ClientCBS client2;
client2.task_num = 2;
gCallbackClients.push_back(client2);
tag_ClientCBS client3;
client3.task_num = 7;
gCallbackClients.push_back(client3);
// 对gCallbackClients进行排序
std::sort(gCallbackClients.begin(), gCallbackClients.end(), compareTaskNum);
// 打印排序后的结果
for (std::vector<tag_ClientCBS>::iterator it = gCallbackClients.begin(); it != gCallbackClients.end(); ++it) {
std::cout << "task_num: " << it->task_num << std::endl;
}
return 0;
}
这段代码首先定义了一个compareTaskNum函数,用于比较tag_ClientCBS结构体的task_num字段。然后在main函数中,添加了一些示例数据到gCallbackClients向量中。接下来,使用std::sort函数对gCallbackClients进行排序,排序的依据是compareTaskNum函数。最后,使用迭代器遍历向量并打印排序后的结果。
原文地址: https://www.cveoy.top/t/topic/jd7p 著作权归作者所有。请勿转载和采集!