Консультация № 137514
19.05.2008, 15:30
0.00 руб.
0 1 1
Здрвствуйте еще раз!

Помогите пожалуйста ещё с одной задачкой. Сформировать динамический массив, который состоит из динамических строк, и добавить на начало этого массива К-строк. Желательно с коментариями. Спасибо Вам за то, что Вы есть.

Обсуждение

Неизвестный
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;}
Форма ответа