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

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

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

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

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

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

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

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

Пустой терминал (в котором можно писать, что угодно) при выполнении программы - C++
Доброго времени суток. Возникла такая проблема. Пробую выполнить программу в geany, на что geany выдает пустой терминал в котором я могу...

подскажите, как можно сохранить переменную, вводимую во время работы программы после ее закрытия - C++
допустим есть переменная a ... int a; cin>>a; ... при повторном открытии программы переменная нигде не сохранится. как ее...

Время работы программы - C++
Здорова! Бывает в некоторых задачах нужно сравнить производительность программ, то есть время работы той или иной программы. Как их...

Время работы программы - C++
как считать?и как микросекунды?именно микросекунды нужны.

Рассчитать время работы программы - C++
Помогите пожалуйста, сколько бы ни пробовала, не получается подсчитать время, оно постоянно равно 0. Задание было такое: Посчитать ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
07.02.2014, 12:29     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
есть уже готовый шаблон в STL std::vector
Ev[G]eN
Эксперт С++
5096 / 1534 / 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
Эксперт С++
5096 / 1534 / 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
Эксперт С++
5096 / 1534 / 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Эксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
07.02.2014, 12:49     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #12
Цитата Сообщение от Игорюня Посмотреть сообщение
И я пока что толком не знаю,что такое пространство имён.
using namespace std
Croessmah
07.02.2014, 12:49
  #13

Не по теме:

egor2116, Tulosba, мда...

Ev[G]eN
Эксперт С++
5096 / 1534 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.02.2014, 12:50     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #14
Цитата Сообщение от Игорюня Посмотреть сообщение
ведь каждый раз писать std это как то
по-моему, это личный выбор каждого, тем более, что разницы, кроме как визуальной, нет
я же не запрещаю Вам переделать свой код так, как удобно Вам
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,642
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;
плюс ко всему вектор не добавляет каждый раз память а выделяет блоками, размер настраивается
так что алгоритм примерно такой
проверяем индекс массива
если не больше выделенного блока то
записываем элемент
изменяем размер
выходим
иначе
выделяем новую память размером как прежняя плюс размер блока
копируем значения
удаляем старую память
записываем новый элемент
изменяем размер
выходим
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
07.02.2014, 14:02     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #16
а данные из старого массива в новый не надо переносить?
Речь шла о изменении размера массива, читайте внимательней, если хотите по умничать, ясное дело что надо.
плюс ко всему вектор не добавляет каждый раз память а выделяет блоками, размер настраивается
Вы прям Америку открыли.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
07.02.2014, 14:15     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #17
SatanaXIII, Tulosba, да успокойтесь вы, автор темы после этих сообщений в ужасе сбежал переосмысливать жизнь. Знаю одно на верняка вас помирит кнопка RESET, она одинаково работает на всех ОС.

Добавлено через 1 минуту
Теперь АТ закроется в кладовке и не выйдет до тех пор пока не решит, WINDOWS, LINUX или продать почку и купить не чем не превосходящий MAC.
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,642
07.02.2014, 14:21     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #18
Цитата Сообщение от egor2116 Посмотреть сообщение
Речь шла о изменении размера массива,
т.е просто размер данные фиг с ним
а как быть с этим ?
Цитата Сообщение от egor2116 Посмотреть сообщение
std::vector работает именно так как я написал.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
07.02.2014, 14:36     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #19
а как быть с этим ?
Принцип работы std::vector основан на динамическом массиве, с выделением блока памяти как вы упомянули.
Где вы в приведенном мной отрывке кода не увидели динамического массива или выделения блока памяти ?
C++
1
2
3
4
int * arr = new int[10];
/* что то делаем */
delete [] arr;
arr = new int[20];
т.е просто размер данные фиг с ним
Вы опять не дочитываете сообщения или читаете не внимательно.
, ясное дело что надо.
я лишь АТ показал принцип, а оформить его в виде класса подобного vector или прям в main писать это кто как хочет или как поставлено конкретное задание или у кого на сколько знаний хватает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 14:39     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы?
Еще ссылки по теме:

Время работы программы (алгоритма) - C++
не получается посчитать время работы алгоритма программы! #include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; ...

Как уменьшить время работы программы? - C++
#include&lt;iostream&gt; using namespace std; int main() { int a,m,n; double d,o,w; cin&gt;&gt;n&gt;&gt;m; a=0; ...

Время работы программы в режиме ядра - C++
Доброго времени суток! Есть задание - подсчитать время выполнения метода в режиме пользователя и ядра. Программа выполняет копирование...

Как сократить время работы программы?! - C++
Нужно сократить время работы программы по вычислению чисел Фибоначчи: Вот мой код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Превышено максимальное время работы программы - C++
#include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; using namespace std; int main(int argc, char** argv) { ...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,642
07.02.2014, 14:39     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы? #20
Цитата Сообщение от egor2116 Посмотреть сообщение
Где вы в приведенном мной отрывке кода не увидели динамического массива или выделения блока памяти ?
я не увидел копирования значений, которое просто необходимы для вектора
Yandex
Объявления
07.02.2014, 14:39     Есть ли конструкции на подобии массивов,но размер которых можно менять сколь угодно раз во время работы программы?
Ответ Создать тему
Опции темы

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