Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Как создать неограниченый массив на С++ |
Автор: Украинец 19.8.2004, 00:40 |
Здравствуйте. Помогите мне пожалуйста, очень нужно..... ![]() Как создавать массив на С++ если в нем заранее не известно число вложенных в нем элементов. Если можно вышлите мне на мейл [email protected] исходный код примера. ![]() Спасибо все кто поможет. ![]() |
Автор: Ridat 19.8.2004, 04:29 |
#include "afxtempl.h" CArray <тип, тип> a; //Объект позволяющий создавать динамические массивы. Если интересно напиши [email protected] Перешлю английсую простенькое описание функций членов |
Автор: gepard 19.8.2004, 06:05 |
Блин. Ей богу эта тема поднимается в 100000000000000000000000 раз. FAQ->"Динам. массивы" |
Автор: chipset 19.8.2004, 07:10 |
Ridat А я счас STL'ный vector юзаю ![]() Мне он как то больше симпатизирует, хотя MFC+STL иногда траблиЦЦа ![]() |
Автор: cardinal 19.8.2004, 09:51 |
А я свой класс написал когда-то, который и является динамическим массивом... |
Автор: gepard 19.8.2004, 13:40 |
cardinal Уважаю. Нефиг юзать чужие классы. Мы программисты или кто? Многие могут сказать: "Зачем изобретать велосипед?" Надо его изобретать. Хотя бы тем, кто недавно начал работать с си++, чтобы знания повышались и квалификация. А те, кто уже давно с ним знаком, напишут класс динам. массива без проблем. ИМХО. |
Автор: chipset 19.8.2004, 13:53 |
Тогда не следует использовать cout, cin, string, WINAPI'шные функции и вообще создавайте окна вручную.. ![]() ИМХО Добавлено @ 13:57 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_carray.3a3a.carray.asp |
Автор: ReSeT 19.8.2004, 14:38 |
chipset, Я не согласен. Смотри: одно дело когда ты уже чудесно владеешь материалом, сам легко сможешь такое написать...но тебе влом, а другое дело когда человек только начинает толком учиться программировать...(как раз в это время обычно люди пишут свои библиотеки, у них выробатывается стиль программирования, а потом сравнив свою библиотеку с уже написаной можно выбрать ту или иную, можно сделать какие-то выводы по поводу своей библиотеки) Я например некоторое время програмил на Masm'е32, так вот я сам написал свою библиотеку для работы с окнами...мне понравилось(хороший опыт: пока я разбирался с тем что в принципе уже написано, я смог освоить некоторые приемы программирования на ассемблере под Windows API) () gepard, cardinal - респект!(уважаю) ![]() |
Автор: chipset 19.8.2004, 14:42 |
Я совершенно не против велосипедов ![]() И не в коем случае не считаю себя прекрасно разбирающимся в материале ![]() ![]() Просто я говорю что STL можно использовать при необходимости ![]() Добавлено @ 14:44 Кроме того я считаю, что сегодня новый программер должен начинать не с VC + MFC (.NET) а с таких компилеров как Turbo C++ чтобы немного понять основы и не запутываться... |
Автор: chipset 19.8.2004, 14:53 |
Украинец Ты не сказал массивы какого типа? Наверное для int и char можно не применять подобных излишеств ![]() |
Автор: Гость_Satana_Claus 19.8.2004, 15:21 |
realloc() или шаблоны |
Автор: _hunter 19.8.2004, 16:16 |
народ, а вы название темы читали? ведь просили НЕОГРАНИЧЕННЫЙ массив! а все ваши CArray' и и vector' ы упрутся в два гига ( смотря какая операционка ) ;) |
Автор: chipset 19.8.2004, 16:18 |
Хмм.. В STL такой функциональности нету :-/ Может в бусте? ![]() |
Автор: ReSeT 19.8.2004, 16:24 |
Ага! Совсем неограниченный - тогда в файл писать нада(хотя и будет ограничение размерами винта, но все-же). Создаем файл произвольного доступа нужного типа....и вот вам массив!(ну почти массив...) -=О! Для этого дела можно свой класс написать.....(напишу - выложу)=- ![]() ![]() ![]() |
Автор: chipset 19.8.2004, 23:32 |
Базы данных ;) |
Автор: cardinal 19.8.2004, 23:39 | ||||||||
Очень часто приходится их переписывать потому, что сделаны они бывают через ж%№;...
Да, можно. ![]() ![]()
Вот, вот... Наша вселенная может быть "неограниченной" и то даже в этом с недавнего времени сомневаются... |
Автор: chipset 19.8.2004, 23:42 | ||||||
Я не уверен что смогу написать лучше, оттестированной тысячами программистов библиотеки и использовать её где нибудь уверенный что глюк не в ней а в основном коде. У меня ещё не настолько высокая квалификация ![]() Для обучения - полностью согласен. Добавлено @ 23:43
![]() ![]() ![]() |
Автор: cardinal 20.8.2004, 00:23 | ||||
Я больше имел в виду эти функции:
Есть такая функция memset. Так вот очень известные создатели компиляторов ![]() Про WINAPI не знаю, но не ожидаю от них ничего хорошего... (ты думаешь в них memset не используется?) Да и тысячи программистов над ними не сидели. Часто большие коммерческие проекты пишутся по принципу: надо - добавим, а это не лучший принцип. Я имею в виду что получается снежный ком, а не постоянное улучшение написанного. Помнишь прикол насчет "определенных" исходников:
То есть номер версии поменялся, а что улучшилось? Интерфейс? |
Автор: lynx_916 20.8.2004, 21:50 | ||||
и что? врядли комунть нужно будет больше чем 2 гига.
между прочим, создание контэйнерных классов - очень хороший способ оттачивать навыки. |
Автор: _hunter 21.8.2004, 11:16 | ||
Раз просили -- значит нжно ;) |
Автор: lynx_916 21.8.2004, 16:08 |
а воообще, вопрос можно понять по-разному: неогр. число элементов. неогр размер в памяти. ![]() |
Автор: Peter 23.8.2004, 11:16 | ||
А мне не понятна эта фраза. Как элементы могут вкладываться в массив? |