我想输入姓名,学号和学生分数并显示此信息。 我用这种方式使用数组:
#include "stdafx.h"
#include <iostream>
#include <string>
#define size 3
using namespace std;
class student{
public:
void vrod();
void dis();
int stno,score,i,n;
};
void student::vrod(){
cout<<"name=";
cin>>name;
cout<<"stno=";
cin>>stno;
cout<<"score=";
cin>>score;
}
void student::dis(){
cout<<"name="<<name<<"\n"<<"stno="<<stno<<"\n"<<"score="<<score<<"\n";
}
int main(){
int i, j=0,n,;
string h;
student st[size];
while (j<3){
st[j].vrod();
j++;}
j=0;
while (j<3){
st[j].dis();
j++;}
cin.get();
cin.get();
}
根据我朋友的推荐,我用这种方式使用了矢量:
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<sstream>
#include<string>
#define n 3
using namespace std;
int main()
{
int input;
string names;
vector<int> stno,score;
vector<string> name;
cout<<"Enter the number of inputs: ";
cout << "Enter your numbers to be evaluated: " << endl;
for(int i=0;i<n;i++){
cout<<"student No.=";
cin >> input;
stno.push_back(input);
}
for(int i=0;i<n;i++){
cout<<"scor=";
cin >> input;
score.push_back(input);
}
for(int i=0;i<n;i++){
cout<<"name=";
cin >> names;
name.push_back(names);
}
for(int i=0;i<stno.size();i++)
cout<<stno[i];
for(int i=0;i<score.size();i++)
cout<<score[i];
for(int i=0;i<name.size();i++)
cout<<name[i];
cin.get();
cin.get();
}
您对改进通过矢量编写的第二个代码有什么意见吗?我可以保存一名学生的信息,包括学生编号和学生分数在一个位置的矢量,如阵列?我的意思是,例如,如果我的n是3,我输入三个位置的学生信息,如数组(学生st [size];)
答案 0 :(得分:0)
我可以保存一位学生的信息,包括学生编号和 学生在像阵列这样的矢量中的一个位置得分?我的意思是 例如,如果我的n是3,我输入三个学生的信息 阵列之类的位置(学生st [size];)
是的,你可以。 std :: vector是一个扩展的动态数组。所以你可以这样做......
std::vector<student> my_vector;
for(int i = 0; i < n; i++)
{
student new_student;
cout << "Number: "
cin >> new_student.number;
cout << "Score: "
cin >> new_student.score;
cout << "Name: "
cin >> new_student.name;
my_vector.push_back(new_student);
}
//Accessing
std::cout << "Hello my name is: " + my_vector[0].name;
//Setting
vector[0].name = "Cranky Kong";
std::cout << "Hello my name is: " + my_vector[0].name;