gpt4 book ai didi

c++ - 对结构 vector 进行排序,降序或升序 : C++

转载 作者:行者123 更新时间:2023-11-28 02:13:16 28 4
gpt4 key购买 nike

<分区>

我试图在以下代码中对结构的 vector 进行排序。该结构有 3 个数据成员。我想从这些数据成员加载一个 vector ,并按其中一个结构数据成员排序/排序。然而,这是行不通的。我用这个作为引用:http://www.cplusplus.com/reference/algorithm/sort/我将不胜感激任何帮助/指针链接。谢谢。

示例代码:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

struct my_data {
int data_id;
string data_one;
string data_two;
};

int main() {
vector<my_data> my_vector;
my_data new_data;
for (int i = 0; i < 3; i++) {
if (i == 0) {
new_data.data_id = i;
new_data.data_one = "BBBB";
new_data.data_two = "bbbb";
my_vector.push_back(new_data);
}
if (i == 1) {
new_data.data_id = i;
new_data.data_one = "AAAA";
new_data.data_two = "aaaa";
my_vector.push_back(new_data);
}
if (i == 2) {
new_data.data_id = i;
new_data.data_one = "CCCC";
new_data.data_two = "cccc";
my_vector.push_back(new_data);
}
}
// now, I want some help to sort my vector by "data_one",
// something like this (below sorting function)!
std::sort(my_vector.begin(), my_vector.end(), data_one);
for (int i = 0; i < my_vector.size(); i++) {
cout << my_vector[i].data_id
<< "\t" << my_vector[i].data_one
<< "\t" << my_vector[i].data_two << endl;
}
}

我期望从打印输出行得到以下输出:

cout << my_vector[i].data_id << "\t" << my_vector[i].data_one << "\t" << my_vector[i].data_two << endl;

2 AAAA aaaa
1 BBBB bbbb
3 CCCC cccc

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com