Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Kemsit
4 / 4 / 0
Регистрация: 07.06.2009
Сообщений: 62
1

Можно ли создать вектор заранее неизвестного размера?

08.06.2009, 15:36. Просмотров 690. Ответов 7
Метки нет (Все метки)

Скажите пожалуйста, можно ли создать вектор заранее неизвестного размера так, чтобы пользователю перед его заполнением не нужно было указывать его размер, а заканчивалось заполнение вектора нажатием enter? Например пользователю предлагается ввести число, он его вводит без пробелов, каждая цифра заносится в элемент вектора, а после нажатия пользователем enter, заполнение заканчивается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2009, 15:36
Ответы с готовыми решениями:

Массив заранее неизвестного размера
Возможно сейчас произвучит тупой вопрос,не судите строго,но можно каким-нибудь...

Как передать в функцию указатель на двумерный массив заранее неизвестного размера?
Ребята, скажите пожалуйста, как реализовать такую идею? Необходимо передать в...

Передача функции заранее неизвестного объекта
Здравствуйте. Можно ли не используя шаблонов передать функции объект заранее...

Функция с переменным числом параметров заранее неизвестного типа
Здравствуйте, коллеги! Прошу помочь начинающему в С++. Есть функция с...

Как создать массив или вектор размера больше чем 0x7fffffff?
Вопрос вот в чем.. максимальная разрядность сетки блоков нитей 2^31-1 на GPU...

7
Delphin_KKC
UNIX-way
710 / 494 / 49
Регистрация: 15.01.2009
Сообщений: 1,721
08.06.2009, 15:40 2
А чем строка не устраивает? По сути - тот же вектор. Под описанные условия - идеально катит.
0
Kemsit
4 / 4 / 0
Регистрация: 07.06.2009
Сообщений: 62
08.06.2009, 15:57  [ТС] 3
со строкой у меня возникают следующие проблемы - если я задаю char chislo[256] - в конце концов функция выводит 256 значений, даже если в числе всего 5 элементов. Если пишу char chislo[] - компилятор не хочет обрабатывать.
Само задание - с помощью рекурсии перевернуть число.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
vector <int> rec2(vector<int> vec1, char *chislo1, int b)
{
    if (b==0)
    {
        return vec1;
    }
    else
    {
        vec1.push_back(chislo1[b]);
        b=b-1;
        return rec2(vec1, chislo1, b);
    }
}
int main()
{
    setlocale (LC_ALL, "Russian");
    cout<<"Лабораторная работа №12"<<endl;
    cout<<"Вариант №5"<<endl;
    cout<<"Выберите номер задания"<<endl;
    cout<<"0 - Выход из программы"<<endl;
    cout<<"2 - Второе задание"<<endl;
    char temp;
    cin>>temp;
    switch (temp)
    {
    case '0':
        {
            cout<<"До свидания!"<<endl;
            break;
        }
    case '2':
        {
            cout<<"Введите число"<<endl;
            vector<int>vec1;
            vector<int>vec2;
            char chislo1[256];
            int b;
            cin>>chislo1;
                        b=sizeof(chislo1);
            vec2=rec2(vec1, chislo1, b);
            
            for (i=0; i<b; i++)
                       {
            cout<<vec2[i]
                        }
            
            cout<<endl;
            break;
        }
    }
 
    system ("pause");
    return 0;
}
0
Delphin_KKC
UNIX-way
710 / 494 / 49
Регистрация: 15.01.2009
Сообщений: 1,721
08.06.2009, 16:00 4
вместо b=sizeof(chislo1); используй b=strlen(chislo1); только не забудь #include <string.h>
sizeof выдаёт размер отведённой под переменную памяти. А strlen - длину строки без завершающего её нуля.
0
Kemsit
4 / 4 / 0
Регистрация: 07.06.2009
Сообщений: 62
08.06.2009, 17:23  [ТС] 5
Подправил ошибки, но всё равно не работает:'(
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <vector>
#include <string.h>
#include <cmath>
using namespace std;
vector <int> rec2(vector<int> vec1, char *chislo1, int b)
{
    if (b==0)
    {
        return vec1;
    }
    else
    {
        vec1.push_back(chislo1[b]);
        b--;
        return rec2(vec1, chislo1, b);
    }
}
int main()
{
    setlocale (LC_ALL, "Russian");
    cout<<"Лабораторная работа №12"<<endl;
    cout<<"Вариант №5"<<endl;
    cout<<"Выберите номер задания"<<endl;
    cout<<"0 - Выход из программы"<<endl;
    cout<<"1 - Первое задание"<<endl;
    cout<<"2 - Второе задание"<<endl;
    char temp;
    cin>>temp;
    switch (temp)
    {
    case '0':
        {
            cout<<"До свидания!"<<endl;
            break;
        }
    case '2':
        {
            cout<<"Введите число"<<endl;
            vector<int>vec1;
            vector<int>vec2;
            char chislo1[256];
            int b;
            cin>>chislo1;
            b=strlen(chislo1);
            vec2=rec2(vec1, chislo1, b);
            for (int i=0; i<b; i++)
            {
            cout<<vec2[i];
            }
            cout<<endl;
            break;
        }
    }
 
    system ("pause");
    return 0;
}
0
FunDuck
688 / 379 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
08.06.2009, 18:01 6
Вектор, наверно, как то так заполнять надо:
C++
1
2
3
        char tmp[1]; 
        memcpy(tmp, &chislo1[b], 1);
        vec1.push_back(atoi(tmp));
0
Kemsit
4 / 4 / 0
Регистрация: 07.06.2009
Сообщений: 62
08.06.2009, 18:05  [ТС] 7
что такое memcpy и atoi?
0
FunDuck
688 / 379 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
08.06.2009, 19:07 8
memcpy (dest, src, cnt); копирует cnt байтов из src в dest. А atoi преобразовывает символьную строку в целое значение.
0
08.06.2009, 19:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2009, 19:07

Массив неизвестного размера
Хочу написать функцию для нахождения предела последовательности. А и eps...

Умножение матрицы неизвестного размера
задание такоэ нужно ввести размерность 2 матриц с клавиатуры а потом их...

Указатель на строку неизвестного размера
Доброго времени суток. Возник вопрос при работе с символьными массивами. Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru