|
-4 / 0 / 2
Регистрация: 16.03.2015
Сообщений: 61
|
||||||
Как у вас двумерные вектора устроены?07.05.2018, 20:44. Показов 1813. Ответов 38
Метки нет (Все метки)
Вектор представляет собой последовательность объектов с динамическим размером, которая обеспечивает произвольный доступ к массиву operator[]. Функция-член push_back копирует свои аргументы с помощью конструктора копирования, добавляет, что копия как последний элемент в векторе и увеличивает его размер на единицу. pop_back делает обратное, удаляя последний элемент. Вставка или удаление элементов с конца вектора берет амортизированное постоянное время, а вставка или удаление из любого другого места занимает линейное время. Это основы векторов. Их гораздо больше. В большинстве случаев вектор должен быть вашим первым выбором в массиве C-стиля. Прежде всего, они имеют динамический размер, что означает, что они могут расти по мере необходимости. Вам не нужно делать всевозможные исследования, чтобы определить оптимальный статический размер, как в случае с массивами C; вектор растет по мере необходимости, и он может быть изменен более или менее вручную, если вам нужно. Во-вторых, векторы предлагают проверку границ с помощью функции-члена at (но не с operator[]), так что вы можете что-то сделать, если ссылаетесь на несуществующий индекс, а не просто наблюдаете за сбоем в работе программы или хуже, продолжая выполнение с поврежденными данными.
если в с++ vector является заменой массива в си, то как создать двухмерный вектор? например нужно считать матрицу размером х на у из файла в вектор при этом размер матрицы неизвестен
0
|
||||||
| 07.05.2018, 20:44 | |
|
Ответы с готовыми решениями:
38
Как устроены проекты VS Как устроены игры? |
|
Комп_Оратор)
|
|||||||
| 02.06.2018, 18:48 | |||||||
0
|
|||||||
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
|
| 02.06.2018, 19:18 | |
|
0
|
|
|
Комп_Оратор)
|
||
| 02.06.2018, 19:24 | ||
|
Для меня, хороший вопрос имеет самостоятельную ценность. Причин тут много. Хороший вопрос может быть интересен многим из тех кто его не задавал. Одним, чтобы прочесть, - другим чтобы ответить. А кому-то чтобы подумать.
0
|
||
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
|||
| 02.06.2018, 19:39 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Комп_Оратор)
|
||
| 02.06.2018, 19:42 | ||
|
0
|
||
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
|
| 02.06.2018, 19:45 | |
|
0
|
|
|
Комп_Оратор)
|
||
| 02.06.2018, 19:53 | ||
|
Дело в том, что массив и указатель на динамическую память, это совершенно разные вещи которые обладают сходным поведением в части перегрузки оператора []. Людей которые непонимают этого всегда будет больше чем остальных. Это нельзя изменить. Поэтому это не проблема.
0
|
||
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
|
| 02.06.2018, 19:59 | |
|
std::array - массив, std::vector - массив. Разница лишь в том, что первый хранится в стеке, второй - в куче...
0
|
|
|
Комп_Оратор)
|
||||||||||||
| 02.06.2018, 20:38 | ||||||||||||
В этом смысле std::array - массив. У него есть возможность параметризации на уровне размера и можно
0
|
||||||||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 02.06.2018, 23:10 | ||
|
0
|
||
|
Комп_Оратор)
|
||
| 03.06.2018, 01:16 | ||
|
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 03.06.2018, 01:46 | |
|
В разделах математики, не связанных с программированием, понятие "массив" не вводится. Там есть вектор (соответствует массиву чисел с размерностью 1), матрица (соответствует массиву чисел с размерностью 2), тензор (соответствует массиву чисел с соответствующей размерностью >= 2).
Естественно массив чисел с размерностью 2 в математическом смысле никак не может быть назван вектором, это по определению матрица. Касательно же создания типа, аналогичного двумерному массиву (с аналогичной организацией памяти) и переменными размерами - оно вроде бы как возможно (даже создать оператор [][][][] можно, применяя промежуточные подтипы, разбивая на одиночные operator[] для соответствующих измерений), но, как мне кажется, не рационально с точки зрения простоты динамического изменения размера (при любом изменении хоть одного размера придётся долго перетасовывать элементы на новые места в этой последовательной модели), в то время как для статического массива изменение размеров просто невозможно, а для вектора векторов все строки лежат независимо, очень может быть что и прорежено, а потому их изменить быстрее.
0
|
|
|
Комп_Оратор)
|
||||
| 03.06.2018, 08:31 | ||||
0
|
||||
|
-4 / 0 / 2
Регистрация: 16.03.2015
Сообщений: 61
|
|||
| 11.06.2018, 12:18 [ТС] | |||
|
Добавлено через 1 минуту ISO/IEC JTC1/SC22/WG21 Комитет Стандартизации C++ намеревался опубликовать новый стандарт в 2009 году (соответственно стандарт, который сейчас называют C++11, должен был называться C++09). Чтобы успеть, Комитет решил сосредоточиться на предложениях, поступивших до 2006, и игнорировать более новые[8]. Языки программирования, такие как C++, проходят постепенное развитие своих возможностей. Этот процесс неизбежно вызывает проблемы совместимости с уже существующим кодом. В приложении C.2 [diff.cpp03] документа N3290 (англ. Final Draft International Standard) описаны некоторые из несовместимостей C++11 с C++03. аж 2011 году
0
|
|||
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
||
| 12.06.2018, 00:32 | ||
|
Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C; множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико, но не включает все возможные программы на C.
0
|
||
|
-4 / 0 / 2
Регистрация: 16.03.2015
Сообщений: 61
|
|
| 14.06.2018, 23:33 [ТС] | |
|
Вы ушли от темы я спрашивал про :Вектор представляет собой последовательность объектов с динамическим размером, которая обеспечивает произвольный доступ к массиву operator[]. Функция-член push_back копирует свои аргументы с помощью конструктора копирования, добавляет, что копия как последний элемент в векторе и увеличивает его размер на единицу. pop_back делает обратное, удаляя последний элемент. Вставка или удаление элементов с конца вектора берет амортизированное постоянное время, а вставка или удаление из любого другого места занимает линейное время. Это основы векторов. Их гораздо больше. В большинстве случаев вектор должен быть вашим первым выбором в массиве C-стиля. Прежде всего, они имеют динамический размер, что означает, что они могут расти по мере необходимости. Вам не нужно делать всевозможные исследования, чтобы определить оптимальный статический размер, как в случае с массивами C; вектор растет по мере необходимости, и он может быть изменен более или менее вручную, если вам нужно. Во-вторых, векторы предлагают проверку границ с помощью функции-члена at (но не с operator[]), так что вы можете что-то сделать, если ссылаетесь на несуществующий индекс, а не просто наблюдаете за сбоем в работе программы или хуже, продолжая выполнение с поврежденными данными.
если в с++ vector является заменой массива в си, то как создать двухмерный вектор?
0
|
|
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
||
| 15.06.2018, 00:34 | ||
|
Все элементы вектора должны принадлежать одному типу. Например, нельзя совместно хранить данные типов char и int в одном экземпляре вектора. Класс vector обладает стандартным набором методов для доступа к элементам, добавления и удаления элементов, а также получения количества хранимых элементов.
0
|
||
|
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
|
||||||
| 15.06.2018, 00:47 | ||||||
|
Вот болванка, допиливай:
Кроме этого есть ещё выравнивание данных. И в C++ приходят на помощь такие вещи как boost::alignment::aligned_allocator.
0
|
||||||
|
-4 / 0 / 2
Регистрация: 16.03.2015
Сообщений: 61
|
|
| 22.06.2018, 23:59 [ТС] | |
|
C++ идентификатор "m_data" не определен
C++ идентификатор "m_data" не определен ошибка ; не хвотало std::vector<double> m_data; нету члена vector #include <SDKDDKVer.h> не удалось открыть источник #include <stdlib.h> файлы не удалось ткрыть самая крупная ошибка :<VCMessage Code="MSB8036" Type="Error" Arguments="$(TargetPlatformVersion)" Condition="$(MissingSDKProps) == 'true'" /> </Target> нету версии windows SDK вы её что в винде 8.1 делали ?
0
|
|
| 22.06.2018, 23:59 | |
|
Помогаю со студенческими работами здесь
39
Как устроены чаты? Как устроены события? Как устроены массивы
Как устроены словари dict? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|