20.05.2008, 04:23
общий
это ответ
Здравствуйте, Sashka!
Для этого воспользуемся классом из STL - deque. Это практически тот же динамический массив vector, с возможностью добавления элементов в начало. В начале программы заносим n новых строк в конец массива (strings.push_back(str);), а затем добавляем k строк уже в начало массива (strings.push_front(str);). Подробнее смотрите в приложении.
Приложение:
#include <cstdlib>#include <deque>#include <string>#include <iostream>using namespace std;int main(int argc, char* argv[]) { int n = 5; deque<string> strings; const int buffer_size = 16; char buffer[buffer_size]; cout << "Initial strings:" << endl << endl; for(int i=0; i<n; i++) { string str = "Initial string #"; str += itoa(i+1, buffer, 10); strings.push_back(str); cout << strings[i] << endl; } int k; cout << endl << "Input k:"; cin >> k; for(int i=0; i<k; i++) { string str = "Added string #"; str += itoa(k-i, buffer, 10); strings.push_front(str); } cout << endl << "Initial and added strings:" << endl << endl; for(int i=0; i<n+k; i++) cout << strings[i] << endl; return 0;}