// File: /workspace/github_cpp_makefile_star2_O1/DimitriDaSilva[P]42_ft_containers/tester/containers/map/test_map_modifiers.cpp
// Function: test_map_modifiers_erase_cplusplus()
void
test_map_modifiers_erase_cplusplus()
{
	ft::map<char, int> mymap;
	ft::map<char, int>::iterator it;

	// insert some values:
	mymap['a'] = 10;
	mymap['b'] = 20;
	mymap['c'] = 30;
	mymap['d'] = 40;
	mymap['e'] = 50;
	mymap['f'] = 60;

	it = mymap.find('b');
	mymap.erase (it);                   // erasing by iterator

	mymap.erase ('c');                  // erasing by key

	it = mymap.find ('e');
	mymap.erase(it, mymap.end());    // erasing by range

	// show content:
	for (it = mymap.begin(); it != mymap.end(); ++it)
		std::cout << it->first << " => " << it->second << '\n';
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
leaq -0x58(%rbp), %r15
movl $0x0, (%r15)
xorl %eax, %eax
movq %rax, 0x8(%r15)
movq %r15, 0x10(%r15)
movq %r15, 0x18(%r15)
movq %rax, 0x20(%r15)
leaq -0x29(%rbp), %rsi
movb $0x61, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xce98
movl $0xa, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x62, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xce98
movl $0x14, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x63, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xce98
movl $0x1e, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x64, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xce98
movl $0x28, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x65, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xce98
movl $0x32, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x66, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xce98
movl $0x3c, (%rax)
movq -0x50(%rbp), %rcx
movq %r15, %rax
testq %rcx, %rcx
je 0x1196f
movq %r15, %rax
xorl %edx, %edx
cmpb $0x62, 0x20(%rcx)
setl %dl
cmovgeq %rcx, %rax
movq 0x10(%rcx,%rdx,8), %rcx
testq %rcx, %rcx
jne 0x11958
movq %r15, %rsi
cmpq %r15, %rax
je 0x11982
cmpb $0x63, 0x20(%rax)
cmovgeq %r15, %rax
movq %rax, %rsi
leaq -0x60(%rbp), %rdi
callq 0xd0aa
leaq -0x29(%rbp), %rsi
movb $0x63, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xd2fc
leaq -0x60(%rbp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0xd242
movq 0x10(%rbx), %rcx
movq %r15, %rax
testq %rcx, %rcx
je 0x119d0
movq %r15, %rax
xorl %edx, %edx
cmpb $0x65, 0x20(%rcx)
setl %dl
cmovgeq %rcx, %rax
movq 0x10(%rcx,%rdx,8), %rcx
testq %rcx, %rcx
jne 0x119b9
movq %r15, %rsi
cmpq %r15, %rax
je 0x119e3
cmpb $0x66, 0x20(%rax)
cmovgeq %r15, %rax
movq %rax, %rsi
leaq -0x60(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rdx
callq 0xd242
movq 0x18(%rbx), %r14
cmpq %r15, %r14
je 0x11a6b
movq 0x225ce(%rip), %r15     # 0x33fd0
leaq -0x29(%rbp), %r12
leaq 0x14e15(%rip), %r13     # 0x26822
movb 0x20(%r14), %al
movb %al, -0x29(%rbp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x2230
movq %rax, %rbx
movl $0x4, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2230
movl 0x24(%r14), %esi
movq %rbx, %rdi
callq 0x2330
movb $0xa, -0x29(%rbp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x2230
movq %r14, %rdi
callq 0x2160
movq %rax, %r14
leaq -0x58(%rbp), %rax
cmpq %rax, %r14
jne 0x11a0d
leaq -0x60(%rbp), %rdi
callq 0xcf00
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x11a93
jmp 0x11a93
jmp 0x11a93
jmp 0x11a93
jmp 0x11a93
jmp 0x11a93
jmp 0x11a93
jmp 0x11a93
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xcf00
movq %rbx, %rdi
callq 0x2340