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

Формат командной строки - C++

Восстановить пароль Регистрация
 
Pavel1111
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
10.04.2013, 15:11     Формат командной строки #1
Нужно выполнить задание.
Есть X потоков в которых лежит по объекту, эти объекты я в случайном порядке сую в контейнер размером Y. При заполнении контейнера, начинаю удалять самые старые объекты и делаю это бесконечно пока не нажму enter. При нажатии enter печатаю данные из контейнера в формате "ПОТОК - КОЛИЧЕСТВО ЕЛЕМЕНТОВ".

В условии сказано:
" 1. Формат командной строки 'test_app X Y'. " -что это значит?
" 2. Y - целое число (size_t) на величину которого ограничение не накладывается (в рамках ограничения типа переменной). " - что это значит?

Какой контейнер наиболее оптимален для этой задачи?

И еще. В подобных задачах при запуске программы консоль выскакивает сама (в коде я ничего для этого не пишу кроме cin>>.... ) -грамотно ли это? Может нужно писать что то типа: отобразить консоль\скрыть консоль?

Добавлено через 1 час 10 минут
Все! тема закрыта.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 15:11     Формат командной строки
Посмотрите здесь:

C++ Аргументы командной строки
C++ Имитация командной строки
C++ использование командной строки
Использование командной строки C++
аргементы командной строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.04.2013, 15:15     Формат командной строки #2
Цитата Сообщение от Pavel1111 Посмотреть сообщение
Формат командной строки 'test_app X Y'. " -что это значит?
Это значит, что программа должна принимать 2 целых аргумента, первый будет интерпретироваться как Х, второй - как Y. Читайте про argv,argc для main().

Цитата Сообщение от Pavel1111 Посмотреть сообщение
Y - целое число (size_t) на величину которого ограничение не накладывается (в рамках ограничения типа переменной). " - что это значит?
То, что переменная объявлена будет как-то так:
C++
1
size_t Y;
И при чтении ее из списка аргументов (п.1) никаких ограничений делать не надо. Т.е. подходит любое, введенное пользователем значение.

Цитата Сообщение от Pavel1111 Посмотреть сообщение
Какой контейнер наиболее оптимален для этой задачи?
Если нужно удалять самые старые, то нужна, скорее всего, очередь std::queue

Цитата Сообщение от Pavel1111 Посмотреть сообщение
Может нужно писать что то типа: отобразить консоль\скрыть консоль?
Не заморачивайтесь на этот счет, если это не оговорено в условии.

Добавлено через 30 секунд
Цитата Сообщение от Pavel1111 Посмотреть сообщение
Все! тема закрыта.
Не успел
Pavel1111
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
10.04.2013, 15:46  [ТС]     Формат командной строки #3
Спасибо. А я подумал что ни кто не ответит даже новую тему создал..
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.04.2013, 15:53     Формат командной строки #4
Цитата Сообщение от Pavel1111 Посмотреть сообщение
даже новую тему создал..
Это зря

Не по теме:

Не забывайте плюсовать, если что пригодилось.

yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.04.2013, 18:02     Формат командной строки #5
Pavel1111, не знаю то или нет, но "test_app X Y" test_app - название приложения, X и Y понятно, я думаю все должно быть так: написал приложение, потом запускаешь командную строку, пишешь путь к своему приложению(test_app), указываешь кол-во потоков и размер контейнера. Тут тебе нужно почитать про параметры функции main, она - то и позволяет принимать данные из командной строки, где

C++
1
int argc, _TCHAR* argv[]
argc - кол-во параметров, а это массив, в твоем случае X и Y будут 1 и 2 элементом массива argv соответственно. Не знаю то это или нет, 100% уверенности нет, но если помог, буду рад. А на счет контейнера я бы предложил использовать list<T>, так как можно добавлять/удалять как в головы так и с конца.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
11.04.2013, 09:44     Формат командной строки #6
Цитата Сообщение от yoghurt92 Посмотреть сообщение
я бы предложил использовать list<T>, так как можно добавлять/удалять как в головы так и с конца.
Зачем? Это же классическая очередь FIFO по заданию.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 12:14     Формат командной строки #7
Tulosba, но с STK-ой версией очереди не так удобно работать(я имею в виду вывод(приходиться удалять и добавлять элементы для вывода), а очередь это что? Это частный случай списка, так что чего-то страшного я не вижу, там так же можно использовать FIFO, исправьте если я не прав
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
11.04.2013, 12:39     Формат командной строки #8
Цитата Сообщение от yoghurt92 Посмотреть сообщение
STK-ой версией
Что это?
Если нужно не просто добавлять в конец/удалять с начала, а ещё иметь всякий обвес типа вывода, то, наверное, да, лучше взять list или deque.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 12:45     Формат командной строки #9
Tulosba, опечатался STL, мне кажется, что содержимое контейнера придется же выводить, я предложил list из соображения удобства, не более.
Pavel1111
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
11.04.2013, 16:24  [ТС]     Формат командной строки #10
Я не стал сразу грузить , а если нужно осуществлять следующую логику:
добавляя новый элемент в очередь (как мы помним элемент находится в своем потоке) нужно проверить из какого потока последний элемент этой очереди и если
1. это один и то же поток, то последний элемент не удаляется
2. из разных потоков то последний элемент удаляем.
В какой то момент очередь конечно заполнится и в проверке отпадет смысл, поскольку добавляя мне все равно придется удалять последний.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 16:45     Формат командной строки
Еще ссылки по теме:

чтение из командной строки C++
C++ Слияних 2 файлов в третий + строки + использование командной строки
C++ Аргументы командной строки

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

Или воспользуйтесь поиском по форуму:
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 16:45     Формат командной строки #11
Pavel1111, может использовать ключ(который для каждого нового потока будет индивидуален)?
Yandex
Объявления
11.04.2013, 16:45     Формат командной строки
Ответ Создать тему
Опции темы

Текущее время: 23:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru