|
это array или map ?
|
|||
---|---|---|---|
#18+
я пытаюсь изобразить простую в ПХП ситуацию, когда: arr[5] = 0; arr[8] = 1; и всё. Больше в arr ничего нет. НО! в C++ там есть. Нули! Либо какие-то левые цифры (иногда с минусом). конкретно если написать так, то он выдаст так: Код: plaintext 1. 2. 3. 4. 5.
кто все эти цифры? мне бы надо бы быть уверенным, что в arr[2] пусто (совсем отсутствует), т.е. освободить память и оставить только ячейки с нужными индексами. Т.е. фактически перезаписать старый массив новым с двумя заполненными ячейками. Как мне чекнуть удалённую arr[2] и убедиться, что она удалена, если в ней цифра? такое через массивы делают, через мапы, через что? или надо непременно всем ячейкам выставлять -1, например (тогда и vector сгодится)? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 20:12 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
полудухя пытаюсь изобразить простую в ПХП ситуацию, когда: arr[5] = 0; arr[8] = 1; C++ не PHP полудухНО! в C++ там есть. Нули! Либо какие-то левые цифры (иногда с минусом). Это мусор, неинициализированная память, остатки от предыдущего ее использования. Используй std::vector ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 20:57 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
поток сознания какой-то... полудухя пытаюсь изобразить простую в ПХП ситуацию, когда: arr[5] = 0; arr[8] = 1; и всё. Больше в arr ничего нет. что значит ничего? nullptr, 0 ? int arr[2] = {0. 1}; - гарантировано больше ничего нет, только 2 значения. Если нужно чтобы 2 значения были расположенны в ячейках 5 и 8, то остальные ячейки чем-то должны быть заполнены - в твоем случае они не проинициализированы поэтому там мусор. В качестве заполнителя, раз речь идет про тип int, можно выбрать, например, -1 и считать, что там где отрицательные числа там ничего нет. arr[8] = { -1, -1, -1, -1, 0 -1, -1, 1 }; полудухмне бы надо бы быть уверенным, что в arr[2] пусто (совсем отсутствует), т.е. освободить память и оставить только ячейки с нужными индексами memset(arr, -1, _countof(arr)); arr[5] = 0; arr[2] = 1; Если тебе надо экономить память, например, огромная таблица в Excel, но в ней заполнены только несколько ячеек, то надо использовать VirtualAlloc с MEM_COMMIT/MEM_RESERVE, как это сделать подробно рассказано у Рихтера в книгах. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 21:02 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
полудухя пытаюсь изобразить простую в ПХП ситуацию, когда: arr[5] = 0; arr[8] = 1; и всё. Больше в arr ничего нет. Вы пых-пыхе у тебя ассоциативный массив. Это map или unordered_map в C++. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 21:56 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovполудухя пытаюсь изобразить простую в ПХП ситуацию, когда: arr[5] = 0; arr[8] = 1; и всё. Больше в arr ничего нет. Вы пых-пыхе у тебя ассоциативный массив. Это map или unordered_map в C++. да, но там, опять же, в несуществующих ячейках нули... Код: plaintext 1. 2. 3. 4. 5. 6.
ну в общем -1 надо юзать в векторе, как я и предполагал... всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 22:37 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
полудухно там, опять же, в несуществующих ячейках нули... А в пых-пыхе разве нет? Используй at() и будет тебе счастье. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 23:08 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
а вот пых поумнее, он ошибку кидает ну если at() юзать, то наверное также получится ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 23:15 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
полудуха вот пых поумнее, он ошибку кидает Я бы это не назвал "поумнее". В части использования ассоциативных массивов абсолютом является LUA, где на них построено абсолютно всё. И вот он-то при чтении неинициализированного элемента массива ошибку не кидает, а возвращает nil. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 01:30 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
nil тоже лучше, чем нули ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 10:11 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
полудухnil тоже лучше, чем нули Это одно и то же. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 13:39 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovполудухnil тоже лучше, чем нули Это одно и то же. Не везде. Например РСУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 18:04 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
Dima TDimitry Sibiryakovпропущено... Это одно и то же. Не везде. Например РСУБД. "Слово похожее" - (с). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 21:30 |
|
это array или map ?
|
|||
---|---|---|---|
#18+
полудухя пытаюсь изобразить простую в ПХП ситуацию, когда: arr[5] = 0; arr[8] = 1; и всё. Больше в arr ничего нет. НО! в C++ там есть. Нули! Либо какие-то левые цифры (иногда с минусом). конкретно если написать так, то он выдаст так: Код: plaintext 1. 2. 3. 4. 5.
кто все эти цифры? мне бы надо бы быть уверенным, что в arr[2] пусто (совсем отсутствует), т.е. освободить память и оставить только ячейки с нужными индексами. Т.е. фактически перезаписать старый массив новым с двумя заполненными ячейками. Как мне чекнуть удалённую arr[2] и убедиться, что она удалена, если в ней цифра? такое через массивы делают, через мапы, через что? или надо непременно всем ячейкам выставлять -1, например (тогда и vector сгодится)? Реализуйте в своем проекте тип <T, bool>, либо используйте optional. Но судя по тому, о чем вы говорите, вам скорее потребуется хеш-таблица ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 19:58 |
|
|
start [/forum/topic.php?fid=57&fpage=16&tid=2017732]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
25ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 138ms |
0 / 0 |