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

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

Войти
Регистрация
Восстановить пароль
 
 
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
#1

Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? - C++

07.02.2014, 12:28. Просмотров 890. Ответов 22
Метки нет (Все метки)

Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время
работы программы? В связанных списках толком ничего не понял...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 12:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? (C++):

Сколь угодно большое целое число - C++
Задача: реализовать обьект lint - сколь угодно большое целое число (знаковое). Необходимо перегрузить все основные операторы (сложение,...

вписать какой угодно фрукт во время работы программы - Visual Basic
Ребята,помоги с заданием плз....не могу понять как при работе программы можно вписать какой-угодно фрукт в данное меню я догадываюсь что...

Создать класс List, в котором может сохраниться сколь угодно целых чисел - C++
Задание: Создать класс List, в котором может сохраниться сколь угодно целых чисел, реализуя при этом методы operator<< и operator>> так,...

Изменить размерность массивов во время работы программы - C (СИ)
Добрый день. Суть проблемы такова: из txt файла считывается размер двумерного массива и создает его, но на это программа дает ошибку...

Создать массив строк, чтобы их можно было менять в процессе работы программы - C (СИ)
Как сделать массив из 5 строк, чтобы их можно было менять в процессе работы программы?

Как во время работы программы создать несколько дополнительных массивов - Delphi
Добрый день. Вопрос в следующем: подскажите, как во время работы программы создать несколько доп. массивов, количество и размер которых...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13139 / 7402 / 829
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
07.02.2014, 12:29 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
есть уже готовый шаблон в STL std::vector
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.02.2014, 12:30 #3
std::vector
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
07.02.2014, 12:33 #4
можно менять сколь угодно раз во время
работы программы
массивы тоже можно менять, если не хотите то ответы выше.

C++
1
2
3
4
int * arr = new int[10];
/* что то делаем */
delete [] arr;
arr = new int[20];
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
07.02.2014, 12:35  [ТС] #5
Цитата Сообщение от egor2116 Посмотреть сообщение
массивы тоже можно менять, если не хотите то ответы выше.

C++
1
2
3
4
int * arr = new int[10];
/* что то делаем */
delete [] arr;
arr = new int[20];
Я лично хочу сделать так,чтобы пользователь мог ввести сколь угодно переменных,и с помощью вашего метода это невозможно.
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.02.2014, 12:37 #6
Цитата Сообщение от Игорюня Посмотреть сообщение
пользователь мог ввести сколь угодно переменных
имеется ввиду элементов, и что бы они заталкивались в вектор?
то есть не используя выделение памяти под конкретное число?
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
07.02.2014, 12:39 #7
Я лично хочу сделать так,чтобы пользователь мог ввести сколь угодно переменных,и с помощью вашего метода это невозможно.
1. Если вы не знаете как это сделать - это не значит не возможно.
2. std::vector работает именно так как я написал.
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
07.02.2014, 12:42  [ТС] #8
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
имеется ввиду элементов, и что бы они заталкивались в вектор?
то есть не используя выделение памяти под конкретное число?
Ну тот же калькулятор.Вы каждый раз вводите различное количество значений.То есть запись в вектор.
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.02.2014, 12:43 #9
Игорюня, в общем, если правильно понял, то вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
 
int main()
{
    std::vector <int> vector;
    std::cout << "Input elements: " << std::endl;
    std::copy(std::istream_iterator <int> (std::cin), std::istream_iterator <int> (), std::back_inserter(vector));
    std::cout << "Vector: " << std::endl;
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <int> (std::cout, " "));
 
    std::system("pause >> temp");
    return 0;
}
будет считывать пока не нажмете Ctrl + Z
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
07.02.2014, 12:47  [ТС] #10
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
Игорюня, в общем, если правильно понял, то вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
 
int main()
{
    std::vector <int> vector;
    std::cout << "Input elements: " << std::endl;
    std::copy(std::istream_iterator <int> (std::cin), std::istream_iterator <int> (), std::back_inserter(vector));
    std::cout << "Vector: " << std::endl;
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <int> (std::cout, " "));
 
    std::system("pause >> temp");
    return 0;
}
будет считывать пока не нажмете Ctrl + Z
Верно.Кстати,почему бы не использовать пространство имён,ведь каждый раз писать std это как то...Хотя не мне вас учить.И я пока что толком не знаю,что такое пространство имён.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
07.02.2014, 12:48 #11
или пока не "испортите" поток
или пока не отключат свет.

Добавлено через 49 секунд
И я пока что толком не знаю
единственные разумные от вас слова.
Croessmah
Модератор
Эксперт CЭксперт С++
13139 / 7402 / 829
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
07.02.2014, 12:49 #12
Цитата Сообщение от Игорюня Посмотреть сообщение
И я пока что толком не знаю,что такое пространство имён.
using namespace std
Croessmah
07.02.2014, 12:49
  #13

Не по теме:

egor2116, Tulosba, мда...

Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.02.2014, 12:50 #14
Цитата Сообщение от Игорюня Посмотреть сообщение
ведь каждый раз писать std это как то
по-моему, это личный выбор каждого, тем более, что разницы, кроме как визуальной, нет
я же не запрещаю Вам переделать свой код так, как удобно Вам
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
07.02.2014, 13:54 #15
Цитата Сообщение от egor2116 Посмотреть сообщение
std::vector работает именно так как я написал.
это в смысле так
Цитата Сообщение от egor2116 Посмотреть сообщение
int * arr = new int[10];
/* что то делаем */
delete [] arr;
arr = new int[20];
а данные из старого массива в новый не надо переносить?

так что примерно так
C++
1
2
3
4
5
6
int * arr = new int[10];
/* что то делаем */
int * arr1=new int[20];
// коприруем значения
delete [] arr;
arr =arr1;
плюс ко всему вектор не добавляет каждый раз память а выделяет блоками, размер настраивается
так что алгоритм примерно такой
проверяем индекс массива
если не больше выделенного блока то
записываем элемент
изменяем размер
выходим
иначе
выделяем новую память размером как прежняя плюс размер блока
копируем значения
удаляем старую память
записываем новый элемент
изменяем размер
выходим
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 13:54
Привет! Вот еще темы с ответами:

Можно ли заполнять StringGrid во время работы программы - Delphi
вопрос по делфи, помогите пожалуйста. Работая с обьектом стрингГрид, могу ли я заполнить его во время выполнения самой програмы?тоесть не...

Можно ли вычислить приблизительное время работы программы? - Delphi
Вечер добрый. Можно ли вычислить приблизительное время работы программы, зная сколько операций совершается и какие цифры при этом...

Как можно суммировать время работы программы? - C#
Здравствуйте, хочу написать прогру которая записыват время работы других программ. Но я ни как не могу придумать как записать время работы...

Как в процессе работы программы можно изменить размер диалога (MFC) - Visual C++
Есть у меня окно вида CModelView и немодальный диалог CModelDialog. Как менять размеры диалога и окна в процессе работы?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.02.2014, 13:54
Ответ Создать тему
Опции темы

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