Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "Тогда на первой реаллокации копируется 1 элемент, на второй — 2, на третьей — 4, затем — 8, 16, 32, 64, 128, 256, 512. После этих действий ёмкость массива равна 1024."
- Если я правильно понял, то есть нужда записать ряд чисел в массив size = 1, 2, 3, ..., 1000.
- Далее такой процесс:
- 00. создаем объект capacity
- 0. выделяем память для capacity = <bit><bit>...<bit> = 32*<bit> = 4*<byte> - под одно число ровно.
- 1. копируем 1 в capacity = 1 копирование
- реаллокация №1. capacity *= 2 = 8*<byte>
- занято 1 место = 4 <byte>/свободно 1 место = 4 <byte>
- 2. копируем 1, 2 в capacity = 2 копирования
- реаллокация №2. capacity *= 2 = 16*<byte>
- занято 2 места = 8 <byte>/свободно 2 места = 8 <byte>
- 3. копируем 1, 2, 3, 4 в capacity = 4 копирования
- реаллокация №3. capacity *= 2 = 32*<byte>
- занято 4 места = 16 <byte>/свободно 4 места = 16 <byte>
- 4. копируем 1, 2, 3, 4, 5, 6, 7, 8 в capacity = 8 копирований
- реаллокация №4. capacity *= 2 = 64*<byte>
- занято 8 мест = 32 <byte>/свободно 8 мест = 32 <byte>
- 5. копируем 1, 2, ..., 16 в capacity = 16 копирований
- реаллокация №5. capacity *= 2 = 128*<byte>
- занято 16 мест = 64 <byte>/свободно 16 мест = 64 <byte>
- 6. копируем 1, 2, ..., 32 в capacity = 32 копирования
- реаллокация №6. capacity *= 2 = 256*<byte>
- занято 32 места = 128 <byte>/свободно 32 места = 128 <byte>
- 7. копируем 1, 2, ..., 64 в capacity = 64 копирования
- реаллокация №7. capacity *= 2 = 512*<byte>
- занято 64 места = 256 <byte>/свободно 64 места = 256 <byte>
- 8. копируем 1, 2, ..., 128 в capacity = 128 копирований
- реаллокация №8. capacity *= 2 = 1024*<byte>
- занято 128 мест = 512 <byte>/свободно 128 мест = 512 <byte>
- 9. копируем 1, 2, ..., 256 в capacity = 256 копирований
- реаллокация №9. capacity *= 2 = 2048*<byte>
- занято 256 мест = 1024 <byte>/свободно 256 мест = 1024 <byte>
- 10. копируем 1, 2, ..., 512 в capacity = 512 копирований
- реаллокация №10. capacity *= 2 = 4096*<byte>
- занято 512 мест = 2048 <byte>/свободно 512 мест = 2048 <byte>
- 11. копируем 1, 2, ..., 1000 в capacity = 1000 копирований
- занято 1000 мест = 4000 <byte>/свободно 24 мест = 96 <byte>
- Общее число копирований: 1 коп. + 2 коп. + 4 коп. + 8 коп. + 16 коп. + 32 коп. + 64 коп. + 128 коп. + 256 коп. + 512 коп. + 1000 коп. = 1023 коп. + 1000 коп. = 2023 копирования = 2*size.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement