인프런 커뮤니티 질문&답변

삐래님의 프로필 이미지
삐래

작성한 질문수

홍정모의 따라하며 배우는 C++

6.21 std::vector 소개

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

해결된 질문

작성

·

3K

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

삐래님의 프로필 이미지
삐래
질문자

답변 감사합니다. 

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

 

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

0

안녕하세요!

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

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

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

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

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

 

삐래님의 프로필 이미지
삐래

작성한 질문수

질문하기