Nhập mảng nhiều string trong C++

Đề bài: nhập vào từ bàn phím số n và nhập n tên người.
Em có thắc mắc thế này: tại sao khi e sử dụng mảng tĩnh thì e có thể nhập string bình thường còn khi sử dụng vector thì màn hình console không cho nhập, chỉ hiện dòng cout thứ 2 rồi out.

int n;
vector <string> s;
cout << "Nhap so luong nguoi: "; cin >> n;
cin.ignore();
for (int i=0; i<n;i++){
	cout << "Nhap ten nguoi thu " << i+1 << ": ";
	getline(cin,s[i]);
}

vector s của bạn đang rỗng, làm sao có thể truy cập được vào phần tử thứ 0 được :confused:

Bạn khởi tạo vector s gồm n phần tử đã.

int n;
cin >> n;
vector<string> s(n, ""); // khởi tạo vector string gồm n string rỗng
2 Likes

À hoá ra là thế, mình cảm ơn.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?