• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

vector를 사용하여 cin 으로 입력값을 받을려면

21.11.18 13:40 작성 조회수 2.4k

0

안녕하세요
독학으로 코딩을 배우려고 하니 어렵네요
간단하게 cin으로 학생숫자를 입력받고 숫자만큼 점수를 배열에 저장할려고 하는데 아래와 같이 작성시 런타임에러가 발생하네요
혹시 이유를 알 수 있을까요?
 
#include <iostream> #include <vector> using namespace std; int main() { int a, numStudent; vector<int> score; cin >> numStudent; for (int j = 0; j < numStudent; j++) { //값 입력 cin >> a; score[j] = a; } for (int j = 0; j < numStudent; j++) { //값 출력 cout << score[j] << endl; } }

답변 2

·

답변을 작성해보세요.

1

삐래님의 프로필

삐래

질문자

2021.11.18

답변 감사합니다. 

score.push_back(a); 로 하니 되네요 

 

혹시 게시글 쓸때 코드블럭이 어딨는지 알수 있을까요?

안소님의 프로필

안소

2021.11.20

0

안소님의 프로필

안소

2021.11.18

안녕하세요!

score 라는 벡터가 사이즈가 0 입니다. vector<int> score; 이건 선언만 하셨을 뿐이지 아직 공간이 없는 벡터인거에요. 사이즈는 지정 안해주셨습니다.

그런 상태에서 score[j] 이런식으로 없는 공간을 접근하려고해서 에러가난 것입니다.

vector<int> score(10) 이런식으로 사이즈 지정을 선언과 동시에 해주거나

 vector<int> score; 이렇게 하되 scroe.push_back(a);  벡터 뒤에 공간 만들어서 삽입하는 push_back 함수 쓰셔야해요.

(그리고 코드는 코드 블럭에 써주시길 부탁드립니다. ^_^  보기가 힘들어용 ㅠ_ㅠ)