編輯:這被標記爲重複的問題,但問題鏈接不是我問的。我知道如何將一個結構數組傳遞給一個函數。我正在尋求如何將成員數據從該數組中的元素傳遞給函數的幫助。如何將結構數組中的成員數據傳遞給函數?
我有C++中的家庭作業,我的任務是用於跟蹤學生的信息創建一個結構:
struct Student {
string name;
double idNumber;
double currentGrade;
double lastGrade;
double overallGPA;
};
提示用戶輸入的學生,他們將進入數據的數量爲此根據此輸入創建一個結構數組。程序然後循環遍歷每個元素,提示用戶輸入每個結構實例的成員數據。
一旦輸入了所有數據,我的任務就是根據用戶選擇的成員變量對數組進行排序。我已經寫了排序函數用於通過名稱變量進行排序,並且我已經編寫了基於雙變量對數組進行排序的通用函數,但是我不確定如何對所有四個雙變量只使用一個函數。
本質上,有一種方法可以使用此功能:
void doubleSort(Student arr[], int arrSize) {
// bubble sort: high -> low
Student temp;
for(int i = 0; i < arrSize; i++) {
for(int j = 0; j < arrSize; j++) {
if(arr[j] < arr[i]) {
// swap values
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
但傳遞構件數據作爲arguement,即IDNumber中,爲了避免編寫一個排序函數爲每個單獨的成員變量?
這似乎不是重複的,但也許問題的措辭可能不同。我認爲這裏的OP想要根據函數中的參數訪問結構的某些字段。數組傳遞已經解決了。 – MayeulC
請看https://stackoverflow.com/questions/14418595/c-method-for-iterating-through-a-structs-members-like-an-array – MayeulC
正確。我的措辭不是很好,但我試圖訪問排序功能中的結構域,我不知道如何去做。 – Austin