我想在下面的代碼中排序一個結構的向量。該結構有3個數據成員。我想從這些數據成員中加載一個向量,並由一個結構數據成員進行排序/排序。但是這不起作用。 我使用它作爲參考:http://www.cplusplus.com/reference/algorithm/sort/ 我會很感激任何幫助/指針鏈接去通過。謝謝。排序結構的矢量,降序或升序:C++
示例代碼:
#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
有沒有'的std :: sort'也不載體用C –
得到它!但現在用C++修復。 –