hello ranges
#include <iostream>
#include <string>
using std::cout;
int
main()
{
std::string s{"hello"};
cout << '\n';
}
any_of, all_of, none_of
#include <iostream>
#include <vector>
using std::cout;
auto is_six = [](int i) { return i == 6; };
int
main()
{
std::vector<int> v{6, 2, 3, 4, 5, 6};
cout << std::boolalpha;
cout << "vector: " << ranges::views::all(v) << '\n';
cout <<
"vector any_of is_six: " <<
ranges::any_of(v, is_six) <<
'\n';
cout <<
"vector all_of is_six: " <<
ranges::all_of(v, is_six) <<
'\n';
}
count
#include <iostream>
#include <vector>
using std::cout;
int
main()
{
std::vector<int> v{6, 2, 3, 4, 5, 6};
cout << "vector: " << c << '\n';
std::array<int, 6> a{6, 2, 3, 4, 5, 6};
cout << "array: " << c << '\n';
}
count_if
#include <array>
#include <iostream>
#include <vector>
using std::cout;
auto is_six = [](int i) -> bool { return i == 6; };
int
main()
{
std::vector<int> v{6, 2, 3, 4, 5, 6};
cout << "vector: " << c << '\n';
std::array<int, 6> a{6, 2, 3, 4, 5, 6};
cout << "array: " << c << '\n';
}
find, find_if, find_if_not on sequence containers
#include <array>
#include <deque>
#include <forward_list>
#include <iostream>
#include <list>
#include <vector>
using std::cout;
auto is_six = [](int i) -> bool { return i == 6; };
int
main()
{
cout << "vector: ";
std::vector<int> v{6, 2, 6, 4, 6, 1};
{
cout << "*i: " << *i << '\n';
}
{
{
cout << "didn't find 10\n";
}
}
{
{
cout << "*i: " << *i << '\n';
}
}
{
{
cout << "*i: " << *i << '\n';
}
}
{
i++;
{
cout << "*i after ++ (2 expected): " << *i;
}
}
cout << "\narray: ";
std::array<int, 6> a{6, 2, 3, 4, 5, 1};
{
{
cout << "*i: " << *i;
}
}
cout << "\nlist: ";
std::list<int> li{6, 2, 3, 4, 5, 1};
{
{
cout << "*i: " << *i;
}
}
cout << "\nfwd_list: ";
std::forward_list<int> fl{6, 2, 3, 4, 5, 1};
{
{
cout << "*i: " << *i;
}
}
cout << "\ndeque: ";
std::deque<int> d{6, 2, 3, 4, 5, 1};
{
{
cout << "*i: " << *i;
}
}
cout << '\n';
}
for_each on sequence containers
#include <array>
#include <deque>
#include <forward_list>
#include <iostream>
#include <list>
#include <queue>
#include <stack>
#include <vector>
using std::cout;
auto print = [](int i) { cout << i << ' '; };
int
main()
{
cout << "vector: ";
std::vector<int> v{1, 2, 3, 4, 5, 6};
cout << "\narray: ";
std::array<int, 6> a{1, 2, 3, 4, 5, 6};
cout << "\nlist: ";
std::list<int> ll{1, 2, 3, 4, 5, 6};
cout << "\nfwd_list: ";
std::forward_list<int> fl{1, 2, 3, 4, 5, 6};
cout << "\ndeque: ";
std::deque<int> d{1, 2, 3, 4, 5, 6};
cout << '\n';
}
for_each on associative containers
#include <iostream>
#include <map>
#include <set>
#include <string>
#include <unordered_map>
#include <unordered_set>
using std::cout;
using std::string;
auto print = [](int i) { cout << i << ' '; };
auto printm = [](std::pair<string, int> p) {
cout << p.first << ":" << p.second << ' ';
};
int
main()
{
cout << "set: ";
std::set<int> si{1, 2, 3, 4, 5, 6};
cout << "\nmap: ";
std::map<string, int> msi{{"one", 1}, {"two", 2}, {"three", 3}};
cout << "\nunordered map: ";
std::unordered_map<string, int> umsi{{"one", 1}, {"two", 2}, {"three", 3}};
cout << "\nunordered set: ";
std::unordered_set<int> usi{1, 2, 3, 4, 5, 6};
cout << '\n';
}
is_sorted
#include <array>
#include <iostream>
#include <vector>
using std::cout;
int
main()
{
cout << std::boolalpha;
std::vector<int> v{1, 2, 3, 4, 5, 6};
std::array<int, 6> a{6, 2, 3, 4, 5, 6};
}