C++ 22.5* (Remove elements) Implement the following function that removes the sp
ID: 3597614 • Letter: C
Question
C++
22.5* (Remove elements) Implement the following function that removes the specified value from a first-class container. Only the first occurrence of a matching value in the container is removed.
template<typename ElementType, typename ContainerType> void remove(ContainerType& container, const ElementType& value)
Your sample case should push the integer 1 through 6 onto a vector<int>, display the contents of the vector, remote the integer 4 from the vector, display the vector again, and attempt to remove the integer 4 a second time, gracefully handling the error when the element is not found.
Explanation / Answer
5
6
#include
<stack>
7
#include
<queue>
8
using
namespace
std;
9
10
int
main()
11 {
12 vector<
int
> vector1, vector2;
13 list<
int
> list1, list2;
14 deque<
int
> deque1, deque2;
15 set<
int
> set1, set2;
16 multiset<
int
> multiset1, multiset2;
17 stack<
int
> stack1, stack2;
18 queue<
int
> queue1, queue2;
19
20 cout <<
"Vector: "
<< endl;
21 vector1.push_back(
1
);
22 vector1.push_back(
2
);
23 vector2.push_back(
30
);
24 cout <<
"size of vector1: "
<< vector1.size() << endl;
25 cout <<
"size of vector2: "
<< vector2.size() << endl;
26 cout <<
"maximum size of vector1: "
<< vector1.max_size() <<
endl;
27 cout <<
"maximum size of vector2: "
<< vector1.max_size() <<
endl;
28 vector1.swap(vector2);
29 cout <<
"size of vector1: "
<< vector1.size() << endl;
30 cout <<
"size of vector2: "
<< vector2.size() << endl;
31 cout <<
"vector1 < vector2? "
<< (vector1 < vector2)
32 << endl << endl;
33
34 cout <<
"List: "
<< endl;
35 list1.push_back(
1
);
36 list1.push_back(
2
);
37 list2.push_back(
30
);
38 cout <<
"size of list1: "
<< list1.size() << endl;
39 cout <<
"size of list2: "
<< list2.size() << endl;
40 cout <<
"maximum size of list1: "
<< list1.max_size() << endl;
41 cout <<
"maximum size of list2: "
<< list2.max_size() << endl;
42 list1.swap(list2);
43 cout <<
"size of list1: "
<< list1.size() << endl;
44 cout <<
"size of list2: "
<< list2.size() << endl;
45 cout <<
"list1 < list2? "
<< (list1 < list2) << endl << endl;
46
47 cout <<
"Deque: "
<< endl;
48 deque1.push_back(
1
);
49 deque1.push_back(
2
);
50 deque2.push_back(
30
);
51 cout <<
"size of deque1: "
<< deque1.size() << endl;
52 cout <<
"size of deque2: "
<< deque2.size() << endl;
53 cout <<
"maximum size of deque1: "
<< deque1.max_size() << endl;
54 cout <<
"maximum size of deque2: "
<< deque2.max_size() << endl;
55 list1.swap(list2);
56 cout <<
"size of deque1: "
<< deque1.size() << endl;
57 cout <<
"size of deque2: "
<< deque2.size() << endl;
58 cout <<
"deque1 < deque2? "
<< (deque1 < deque2) << endl << endl;
59
60 cout <<
"Set: "
<< endl;
61 set1.insert(
1
);
6
62 set1.insert(
1
);
63 set1.insert(
2
);
64 set2.insert(
30
);
65 cout <<
"size of set1: "
<< set1.size() << endl;
66 cout <<
"size of set2: "
<< set2.size() << endl;
67 cout <<
"maximum size of set1: "
<< set1.max_size() << endl;
68 cout <<
"maximum size of set2: "
<< set2.max_size() << endl;
69 set1.swap(set2);
70 cout <<
"size of set1: "
<< set1.size() << endl;
71 cout <<
"size of set2: "
<< set2.size() << endl;
72 cout <<
"set1 < set2? "
<< (set1 < set2) << endl << endl;
73
74 cout <<
"Multiset: "
<< endl;
75 multiset1.insert(
1
);
76 multiset1.insert(
1
);
77 multiset1.insert(
2
);
78 multiset2.insert(
30
);
79 cout <<
"size of multiset1: "
<< multiset1.size() << endl;
80 cout <<
"size of multiset2: "
<< multiset2.size() << endl;
81 cout <<
"maximum size of multiset1: "
<<
82 multiset1.max_size() << endl;
83 cout <<
"maximum size of multiset2: "
<<
84 multiset2.max_size() << endl;
85 multiset1.swap(multiset2);
86 cout <<
"size of multiset1: "
<< multiset1.size() << endl;
87 cout <<
"size of multiset2: "
<< multiset2.size() << endl;
88 cout <<
"multiset1 < multiset2? "
<<
89 (multiset1 < multiset2) << endl << endl;
90
91 cout <<
"Stack: "
<< endl;
92 stack1.push(
1
);
93 stack1.push(
1
);
94 stack1.push(
2
);
95 stack2.push(
30
);
96 cout <<
"size of stack1: "
<< stack1.size() << endl;
97 cout <<
"size of stack2: "
<< stack2.size() << endl;
98 cout <<
"stack1 < stack2? "
<< (stack1 < stack2) << endl << endl;
99
100 cout <<
"Queue: "
<< endl;
101 queue1.push(
1
);
102 queue1.push(
1
);
103 queue1.push(
2
);
104 queue2.push(
30
);
105 cout <<
"size of queue1: "
<< queue1.size() << endl;
106 cout <<
"size of queue2: "
<< queue2.size() << endl;
107 cout <<
"queue1 < queue2? "
<< (queue1 < queue2) << endl << endl;
108
109
return
0
;
110 }
Sample output
Vector:
size of vector1: 2
size of vector2: 1
maximum size of vector1: 1073741823
maximum size of vector2: 1073741823
size of vector1: 1
size of vector2: 2
7
vector1 < vector2? 0
List:
size of list1: 2
size of list2: 1
maximum size of list1: 4294967295
maximum size of list2: 4294967295
size of list1: 1
size of list2: 2
list1 < list2? 0
Deque:
size of deque1: 2
size of deque2: 1
maximum size of deque1: 4294967295
maximum size of deque2: 4294967295
size of deque1: 1
size of deque2: 2
deque1 < deque2? 0
Set:
size of set1: 2
size of set2: 1
maximum size of set1: 4294967295
maximum size of set2: 4294967295
size of set1: 1
size of set2: 2
set1 < set2? 0
Multiset:
size of multiset1: 3
size of multiset2: 1
maximum size of multiset1: 4294967295
maximum size of multiset2: 4294967295
size of multiset1: 1
size of multiset2: 3
multiset1 < multiset2? 0
Stack:
size of stack1: 3
size of stack2: 1
stack1 < stack2? 1
Queue:
size of queue1: 3
size of queue2: 1
queue1 < queue2? 1
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.