[英]Input elements of structure in C++
我正在嘗試在C ++ 14中實現一個結構。我已經建立了一個具有3個int
值的結構
struct mystruct{
int a;
int b;
int c;
};
在我的main函數中,我用以下方式初始化結構數組:
int main(){
mystruct X[] = {{1,2,3}, {4,5,6}};
.
.
}
我將把這個數組傳遞給一個函數,我將對它執行一些操作。 那個功能可能是這樣的:
int myfunc(mystruct X[]){
//do something
}
如何使用cin
將此數組的值作為用戶輸入,而不是對它們進行硬編碼(可能使用對象)? 我不知道該如何解決這個問題。
編輯:我希望這可以以某種方式使用對象實現
您可以為struct
實現輸入運算符。 像這樣的東西會起作用:
std::istream& operator>>(std::istream& is, mystruct& st)
{
return is >> st.a >> st.b >> st.c;
}
現在你可以從這樣的mystruct
讀入:
mystruct t;
std::cin >> t;
(注意上面的函數不處理錯誤)
現在,通過使用循環可以非常簡單地將這些新結構添加到數組中。 (我建議在這里使用std::vector
)。
這是一個使用std::vector
的例子:
std::vector<mystruct> arr;
for (mystruct t; std::cin >> t;)
{
arr.push_back(t);
}
myfunc(arr.data()); // Or you could change the signature of the
// function to accept a vector
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.