因此,在这样声明的类中有一个多维数组:
struct competitors_list_st {
string competitor_name;
int competitor_medals;
};
competitors_list_st competitors_list[2][1000];我想为这个数组创建一个setter方法,一个我可以从构造函数中调用的方法。
void set_competitors_list(int rows) {
int rowCounter, colCounter, cols, sum = 0;
for (rowCounter = 0; rowCounter < 2; rowCounter++) {
for (colCounter = 0; colCounter < columns; colCounter++) {
//???
cout << "Enter information for sportist:";
cin >> name >> medals;
competitors_list[colCounter][rowCounter] = medals, name;
}
}
}对于第一个循环,我要循环2次,因为我知道列是2,但是行数由用户决定。我在cin>>行上得到一个错误-没有任何操作符匹配这些操作数操作数类型是: Coach::competitors_list_st 2、std::Coach::competitors_list_st。
我基本上希望用户输入列数,然后输入两个需要存储在数组中的值。这是正确的方法吗?我的错误在哪里?
发布于 2022-11-10 17:51:43
我只是不太明白这个数组实现了什么目的,如果我知道,我可以告诉你比我现在更好。
但你可以试试这个:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct competitors_list_st {
string competitor_name;
int competitor_medals;
//Initializator (competitors_list_st("test", 10))
void setData (string s, int m)
{
competitor_name = s;
competitor_medals = m;
}
};
competitors_list_st competitors_list[2][1000];
void set_competitors_list(int rows) {
int rowCounter, colCounter, cols, sum = 0;
for (rowCounter = 0; rowCounter < 2; rowCounter++) {
for (colCounter = 0; colCounter < rows; colCounter++) {
//???
cout << "Enter information for sportist:";
string name;
int medals;
cin >> name >> medals;
competitors_list[rowCounter][colCounter].setData(name, medals);
}
}
}
void main() {
set_competitors_list(1);
for (int row = 0; row < 2; row++)
{
for (int col = 0; col < 1; col++)
{
cout << '\n' << competitors_list[row][col].competitor_name << ' ' << competitors_list[row][col].competitor_medals;
}
}
}https://stackoverflow.com/questions/74388502
复制相似问题