Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <map>
- #include <string>
- #include <algorithm>
- #include <iostream>
- #include <set>
- #include <utility>
- #include <vector>
- #include <numeric>
- #include <chrono>
- #include <type_traits>
- #include <cassert>
- #include <sstream>
- #include <unordered_map>
- using namespace std;
- template <typename It>
- void PrintRange(It range_begin, It range_end){
- for(auto it = range_begin; it != range_end; ++it){
- cout << *it << " "s;
- }
- cout << endl;
- }
- template <typename It>
- auto MakeSet(It range_begin, It range_end){
- return set(range_begin, range_end);
- }
- template <typename It>
- auto MakeVector(It range_begin, It range_end){
- return vector(range_begin, range_end);
- }
- template <typename Container, typename Iterator>
- void EraseAndPrint(Container &container, Iterator it){
- PrintRange(container.begin(), it);
- container.erase(it);
- PrintRange(it, container.end());
- }
- template <typename Container>
- void EraseAndPrint(Container &container, int pos, int begin, int end){
- auto it = container.erase(container.begin() + pos);
- PrintRange(it, container.end());
- it = container.erase(container.begin() + begin, container.begin() + end);
- PrintRange(it, container.end());
- }
- int main() {
- vector<string> langs = {"Python"s, "Java"s, "C#"s, "Ruby"s, "C++"s};
- EraseAndPrint(langs, langs.begin());
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment