Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/48: Рейтинг темы: голосов - 48, средняя оценка - 4.58
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 107
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте. Как осуществить создание неизвестное заранее количество переменных?
Например пользователь вводит число k, а программа создает k переменных.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 18:46
Ответы с готовыми решениями:

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

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

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

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

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

Не по теме:

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

1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
21.01.2012, 01:12 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);
}
0
silent_1991
21.01.2012, 20:02     Cоздание неизвестное заранее количество переменных
  #36
 Комментарий модератора 
Jоker, если ответ на следующий вопрос тоже можно будет узнай по первой ссылке соответствующего запроса в гугле - закрою тему.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2012, 20:02

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

Выполнить заранее неизвестное количество запросов с параметром
Добрый день. Есть такой вопрос. Допустим, по определенному условию я удалил из таблицы энное число...

Как создать неизвестное заранее количество обьектов?
Здравствуйте! Может для кого-то глупый вопрос, но я не могу найти решение. Допустим я создаю...

Как инициализировать заранее неизвестное количество компонентов?
Всем привет. Собственно возник вопрос: как, используя WindowsForms создать на форме заранее не...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru