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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Jоker
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 107
#1

Cоздание неизвестное заранее количество переменных - C++

20.01.2012, 18:46. Просмотров 2402. Ответов 35
Метки нет (Все метки)

Здравствуйте. Как осуществить создание неизвестное заранее количество переменных?
Например пользователь вводит число k, а программа создает k переменных.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 18:46     Cоздание неизвестное заранее количество переменных
Посмотрите здесь:

Как принять заранее неизвестное количество аргументов и передать их в конструктор? - C++
Допустим есть функция которая создает объект template<typename T> T* createObject(typename ...params) { return new...

Неизвестное количество переменных в функции - C++
Гуру, подскажите пожалуйста куда копать! Нужна функция, которая работает с формат-строкой и переменными. Примерно это выглядит так: ...

Как передать в функцию заранее неизвестное число параметров? - C++
как передать в функцию "func" разное число параметров? писать для каждого перегрузку, или можно передать array int??

Неизвестное количество строк в двумерном массиве - C++
Как обеспечить ввод неограчиненного числа строк, который прекращается, к примеру, пустой строкой или специальным символом? #include...

как сделать неизвестное количество вложенных циклов - C++
в программу будет вводиться n-ное число, это самое число циклов со счетчиком, т. е. for (t=1; t<=v; ++t) for (t=1; t<=v; ++t) ...

Сколько выделить памяти, если заранее неизвестно количество вложенных классов - C++
#include <iostream> #include <locale> #include <fstream> #include <string> #include <vector> #include <stdio.h> #include...

Как захватить динамически память, не зная заранее, какое количество памяти надо? - C++
задание Считайте все записи из файла "6.dat". Для чтения каждой отдельной записи осуществите динамический захват памяти. Предполагается,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 19:44     Cоздание неизвестное заранее количество переменных #21
go, спасибо интересная весчь. (извините за необразованность, но пишу на плюсах и чистым си не интересовалсо)
Jоker
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 107
20.01.2012, 19:46  [ТС]     Cоздание неизвестное заранее количество переменных #22
а можно увеличить размер уже созданного массива?
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 19:48     Cоздание неизвестное заранее количество переменных #23
Цитата Сообщение от Jоker Посмотреть сообщение
а можно увеличить размер уже созданного массива?
в плюсах нет, разве что ты будешь пользовацо вектором, тогда проблеммы с выделением памяти тебя заботить небудут.
Jоker
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 107
20.01.2012, 19:49  [ТС]     Cоздание неизвестное заранее количество переменных #24
Цитата Сообщение от Melkor Посмотреть сообщение
в плюсах нет, разве что ты будешь пользовацо вектором, тогда проблеммы с выделением памяти тебя заботить небудут.
Вектором?
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 19:52     Cоздание неизвестное заранее количество переменных #25
Цитата Сообщение от Jоker Посмотреть сообщение
Вектором?
Да.
Цитата Сообщение от Melkor Посмотреть сообщение
в плюсах нет,
Да, подобной функции realloc нет, но можно ведь ухитриться. Выделить новую память. Скопировать, и освободить старую
Jоker
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 107
20.01.2012, 19:55  [ТС]     Cоздание неизвестное заранее количество переменных #26
можно удалить отдельный элемент массива?
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 19:56     Cоздание неизвестное заранее количество переменных #27
Цитата Сообщение от go Посмотреть сообщение
но можно ведь ухитриться.
ну зачем же изобретать велосипед ???
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 19:58     Cоздание неизвестное заранее количество переменных #28
Цитата Сообщение от Jоker Посмотреть сообщение
можно удалить отдельный элемент массива?
Да. http://www.cplusplus.com/reference/stl/vector/erase/
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 19:58     Cоздание неизвестное заранее количество переменных #29
Цитата Сообщение от Jоker Посмотреть сообщение
можно удалить отдельный элемент массива?
опять таки вектор тебе в помощь
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 19:59     Cоздание неизвестное заранее количество переменных #30
Цитата Сообщение от Melkor Посмотреть сообщение
ну зачем же изобретать велосипед ???
А как еще? Если вектором не хотите
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 20:01     Cоздание неизвестное заранее количество переменных #31
Цитата Сообщение от go Посмотреть сообщение
А как еще? Если вектором не хотите
ну тогда ничего другого не остается, как закатать рукава, налить ведро кофе и ...
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 20:01     Cоздание неизвестное заранее количество переменных #32
Цитата Сообщение от Melkor Посмотреть сообщение
опять таки вектор тебе в помощь
http://alenacpp.blogspot.com/2005/06/vector_30.html
Как происходит в векторе
Допустим, у нас есть вектор из n элементов. Что происходит, когда программист добавляет еще один? Когда есть запасная память, элемент пишется туда. Когда ее нет, выделяется непрерывный кусок памяти достаточный для n*K элементов, где K - коэффицент. В него копируются предыдущие n, добавляется наш новый элемент, старый кусок размером n освобождается. Если бы запаса не было, то память бы выделялась каждый раз при добавлении нового элемента, что страшно неэффективно.
Так или иначе мы этого не избегаем.
Jоker
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 107
20.01.2012, 20:11  [ТС]     Cоздание неизвестное заранее количество переменных #33
что такое size_t?
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 20:16     Cоздание неизвестное заранее количество переменных #34
Цитата Сообщение от Jоker Посмотреть сообщение
size_t?
http://www.cplusplus.com/reference/c...cstdio/size_t/

Не по теме:

Форум и гугол Вы точно перепутали.

easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
21.01.2012, 01:12     Cоздание неизвестное заранее количество переменных #35
Цитата Сообщение от dimcoder Посмотреть сообщение
int k = rand()%25;
k будет принимать значения от 0 до 24. Вариант с массивом нулевой длины лучше как-то отдельно обработать...

Цитата Сообщение от Jоker Посмотреть сообщение
можно удалить отдельный элемент массива?
можно
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main(void){
    int * arr, i, size = 10;
    
    if ( ! ( arr = malloc(sizeof(int) * size) ) ){
        perror("malloc");
        exit(1);
    }
    
    printf("Array:\n");
    for ( i = 0; i < size; ++i )
        printf("%d ", (arr[i] = i + 1));
    
    memmove(arr, arr + 1, sizeof(int) * --size);
    
    if ( ! ( arr = realloc(arr, sizeof(int) * size) ) ){
        perror("realloc");
        exit(1);
    }
    
    printf("\nWithout first element:\n");
    for ( i = 0; i < size; ++i )
        printf("%d ", arr[i]);
    
    printf("\n");
    free(arr);
    
    exit(0);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2012, 20:02     Cоздание неизвестное заранее количество переменных
Еще ссылки по теме:

В списке целых чисел подсчитать количество переменных знаков. Вывести между какими элементами - C++
Вроде односвязный список организовал, но вдруг приспичило двусвязный сделать. Прошу подскажите с какой стороны зайти. List.cpp /* *...

Избегая глобальных переменных напишите функцию, которая будет возвращать количество своих вызовов - C++
Избегая глобальных переменных напишите функцию, которая будет возвращать количество своих вызовов

Сортировки. Неизвестное обозначение - C++
Здравствуйте. Читаю тему про сортировки(говорят, что сортировки очень важная вещь в программировании) и там встречаются непонятные...

функция на неизвестное число параметров - C++
Здравствуйте, требуется создать функцию void f(), которая будет принимать от 0 до n параметров типа HMENU, как это реализовать?

Неизвестное число повторений в цикле - C++
У первоклассника Пети m рублей. Мороженое стоит k рублей. Петя решил наесться досыта мороженого, для этого он покупал по одному мороженому...


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

Или воспользуйтесь поиском по форуму:
silent_1991
21.01.2012, 20:02     Cоздание неизвестное заранее количество переменных
  #36
 Комментарий модератора 
Jоker, если ответ на следующий вопрос тоже можно будет узнай по первой ссылке соответствующего запроса в гугле - закрою тему.
Yandex
Объявления
21.01.2012, 20:02     Cоздание неизвестное заранее количество переменных
Ответ Создать тему
Опции темы

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