Skip to content

azbyx/custom_allocator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 02

Build Status Download

УсловиС задания

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ рСзСрвирования памяти. Π”Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ std::map. Аллокатор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ количСством выдСляСмых Π·Π° Ρ€Π°Π· элСмСнтов. ОсвобоТдСниС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ элСмСнта Π½Π΅ прСдполагаСтся - Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ всю ΠΏΠ°ΠΌΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Аллокатор Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с фиксированным количСством элСмСнтов. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΡƒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ большСС число элСмСнтов ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ошибкой. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π°. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ число элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ количСство, Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ поэлСмСнтноС освобоТдСниС.

ЦСль Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π° – ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ выдСлСния памяти.

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ stl парамСтризуСтся Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π΅ возмоТности - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ stl – ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ size, empty ΠΈ Ρ‚.Π΄. ЦСль Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ своСго ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° – ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ std::allocator, Π° Ρ‚Π°ΠΊΠΆΠ΅ свой Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€.

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹:

  • созданиС экзСмпляра std::map<int, int>
  • Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 10 элСмСнтами, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ - это число ΠΎΡ‚ 0 Π΄ΠΎ 9, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π» ΠΊΠ»ΡŽΡ‡Π°
  • созданиС экзСмпляра std::map<int, int> с Π½ΠΎΠ²Ρ‹ΠΌ Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ 10 элСмСнтами
  • Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 10 элСмСнтами, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ - это число ΠΎΡ‚ 0 Π΄ΠΎ 9, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π» ΠΊΠ»ΡŽΡ‡Π°
  • Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (ΠΊΠ»ΡŽΡ‡ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ) хранящихся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅
  • созданиС экзСмпляра своСго ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° int
  • Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 10 элСмСнтами ΠΎΡ‚ 0 Π΄ΠΎ 9
  • созданиС экзСмпляра своСго ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° int с Π½ΠΎΠ²Ρ‹ΠΌ Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ 10 элСмСнтами
  • Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 10 элСмСнтами ΠΎΡ‚ 0 Π΄ΠΎ 9
  • Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, хранящихся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅

About

this repository is an attempt to write a custom allocator in C ++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •