2016-07-18 7 views
0

名前、学生番号、生徒の得点を入力してこの情報を表示したいと考えています。 私は、このように配列を使用:数字を入力するのにどのようにベクトルを使用できますか?

#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(); 
} 

あなたはベクターを介して書かれた第二のコードを改善するための任意の意見を持っていますか?学生番号と学生の得点を含む1人の学生からの情報を、配列のようなベクトルの1つの位置に保存できますか?

+3

おそらくあなたは[**コードレビュー**](http://codereview.stackexchange.com/)にアクセスする必要がありますか? –

+1

これはコードレビューサイトではないため、この質問を議論の対象外としています。あなたはcodereview.stackexchange.comの質問をすることができるかもしれませんが、トピックにある質問や良い質問を書く方法について、ヘルプページをまず読んでください。 – AdrianHHH

+0

彼は配列のようにベクトルにアクセス/設定できるかどうか質問しています。それは少し言い直される必要があるかもしれません。 – Taztingo

答えて

0

私は学生数と 生徒のスコアを含め一人の学生からの情報を保存することができます。(学生ST [サイズ])私は、nが3であれば、私は配列のような三つの位置に学生の情報を入力して、たとえば意味します配列のようなベクトルの1つの位置?

はいすることができます。(学生ST [サイズ])私のnが3である場合、私は、私は、配列のような3つの 位置に学生の情報を入力し、 例えば意味します。 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; 
+0

貴重な答えをありがとう。チュートリアルを読むと、std :: vector my_vectorを使用するのが一般的です。 を使ってみませんか?学生new_studentの義務は何ですか?チュートリアルでは利用できません:) – sasan

+0

はい、申し訳ありません。 std :: vector 。 new_studentは、ベクトルの中に入れられている生徒オブジェクトです。これは標準テンプレートライブラリ(STL)の一部です。簡単に言えば、ベクトルオブジェクトにはユーザー指定の型だけが含まれます。この場合、私はあなたがタイプstudentのオブジェクトを含むことをベクトルと言っています。 "std :: vector "。あなたがintのベクトルを作成したい場合は、yo vectorと言うと、int型のオブジェクトが含まれます。 "std :: vector " – Taztingo

+0

もう一度、ありがとうございます。student new_student;はどうですか?私はそのコードを書いたが、tiは識別子studentが定義されていないと書かれ、変数new_studentは型名ではない。問題は何ですか?ありがとう、 – sasan

関連する問題