我正在尝试在 C++ 14 中实现一个结构。我创建了一个具有 3 个 int
值的结构
struct mystruct{
int a;
int b;
int c;
};
在我的主函数中,我按以下方式初始化结构数组:
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
关于c++ - C++中结构的输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48733939/