2013-10-15 3 views
0

Я хочу создать вектор, который будет содержать строки, но размер вектора будет определяться количеством строк, вводимых пользователем до тех пор, пока они не войдут в quit. Как я могу сделать вектор, не зная его размера. Если кто-то может указать мне в правильном направлении, я бы очень признателен.Проблема с указанием размера вектора

Мой код выглядит следующим образом:

1#include<iostream> 
2 #include<string> 
3 #include<cctype> 
4 #include<vector> 
5 using namespace std; 
6 
7 void str_to_upper(string &s); 
8 void reverse(string &s); 
9 bool is_palindrome(string s); 
10 void fill_vector(vector<string> &v); 
11 void print_vector(vector<string> v); 
12 void print_palindromes(vector<string> v); 
13 void change_to_upper(vector<string> &v); 
14 
15 int main() 
16 { 
17 int size; 
18 vector<string> v(); 
19 for(int i = 0; v[i] != "quit"; i++) 
20 { 
21 getline(cin, v[i]; 
22 } 

ответ

1

вектор C++ растет и сжимается динамически. В отличие от массива, вам не нужно указывать явный размер. Конструктор обрабатывает его.

Если вы добавите больше, чем может в настоящее время удерживать, оно изменит размер. То же самое касается удаления. Посмотрите:

http://en.cppreference.com/w/cpp/container/vector

Смежные вопросы