如何使用向量输入数字?

时间:2016-07-18 13:16:18

标签: c++ arrays vector

我想输入姓名,学号和学生分数并显示此信息。 我用这种方式使用数组:

#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];)

1 个答案:

答案 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;