Форум программистов, компьютерный форум CyberForum.ru

Динамические массивы - C++

Восстановить пароль Регистрация
 
Engineer12
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 3
07.12.2013, 20:59     Динамические массивы #1
Нужно создать массив из строк string, причем их количество заранее неизвестно (и вбить их значение заранее тоже нельзя).

Кто-нибудь может сказать, как это сделать? Если есть пример с помощью вектора или указателя - приведите, заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 20:59     Динамические массивы
Посмотрите здесь:

C++ динамические массивы ?
C++ Динамические массивы
Динамические массивы C++
C++ Динамические массивы
C++ Динамические массивы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
07.12.2013, 21:05     Динамические массивы #2
Если используете контейнер
C++
1
string
, то только при помощи вектора
C++
1
vector<string> strs;
Engineer12
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 3
07.12.2013, 21:25  [ТС]     Динамические массивы #3
Цитата Сообщение от zitxbit Посмотреть сообщение
Если используете контейнер
C++
1
string
, то только при помощи вектора
C++
1
vector<string> strs;
Хорошо, допустим я создал вектор с именем str, далее как организовать ввод слов (каждое слово - один из элементов массива, который нужно создать) при помощи цикла, завершающегося по нажатию Enter

Сделал код, но программа крашится. Какие тут ошибки?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <string>
#include <conio.h>
#include <vector>
 
int main()
{
vector<string> str;
int i;
int n;
n=0;
i=0;
cout << "Enter string: " << endl;
do
{
cin >> str[i];
str[i].size();
n=n+str[i].size();
i++;
str.push_back();
}
while (cin.get( )!='\n');
unsigned int vector_size = i;
cout << "Vi vveli:";
for (int a=0; a<i; a++)
{
if (a!=i-1)
{
cout << str[i] << ' ';
}
else
{
cout << str[i] << ' ' << endl;
}
}
cout << "Symbols: " 
<< n 
<< endl;
return 0;
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
07.12.2013, 21:56     Динамические массивы #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <sstream>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::stringstream sstr(str);
    std::istream_iterator<std::string> ib(sstr), ie;
    std::vector<std::string> vec (ib, ie);
    std::cout << vec.size() << "\n\n";
    for(std::vector<std::string>::const_iterator ib = vec.begin(); ib != vec.end(); ++ib)
        std::cout << *ib << '\n';
    return 0;
}
Yandex
Объявления
07.12.2013, 21:56     Динамические массивы
Ответ Создать тему
Опции темы

Текущее время: 15:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru