FreeTensor
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
container_utils.h File Reference
#include <algorithm>
#include <cctype>
#include <iostream>
#include <ranges>
#include <sstream>
#include <string>
#include <tuple>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <range/v3/range.hpp>
#include <range/v3/view.hpp>
Include dependency graph for container_utils.h:

Go to the source code of this file.

Classes

struct  freetensor::_Join
 

Namespaces

namespace  freetensor
 

Functions

template<class T , class V1 , class V2 , class Hash , class KeyEqual >
std::unordered_map< T, std::pair< V1, V2 >, Hash, KeyEqual > freetensor::intersect (const std::unordered_map< T, V1, Hash, KeyEqual > &lhs, const std::unordered_map< T, V2, Hash, KeyEqual > &rhs)
 
template<class T , class Hash , class KeyEqual >
std::unordered_set< T, Hash, KeyEqual > freetensor::intersect (const std::unordered_set< T, Hash, KeyEqual > &lhs, const std::unordered_set< T, Hash, KeyEqual > &rhs)
 
template<class T , class Hash , class KeyEqual >
bool freetensor::hasIntersect (const std::unordered_set< T, Hash, KeyEqual > &lhs, const std::unordered_set< T, Hash, KeyEqual > &rhs)
 
template<class T >
std::vector< T > freetensor::intersect (const std::vector< T > &lhs, const std::vector< T > &rhs)
 
template<class T , class Hash , class KeyEqual >
bool freetensor::isSubSetOf (const std::unordered_set< T, Hash, KeyEqual > &lhs, const std::unordered_set< T, Hash, KeyEqual > &rhs)
 
template<class T >
std::vector< T > freetensor::uni (const std::vector< T > &lhs, const std::vector< T > &rhs)
 
template<class T , class Hash , class KeyEqual >
std::unordered_set< T, Hash, KeyEqual > freetensor::uni (const std::unordered_set< T, Hash, KeyEqual > &lhs, const std::unordered_set< T, Hash, KeyEqual > &rhs)
 
template<class T , class Hash , class KeyEqual >
std::unordered_set< T, Hash, KeyEqual > freetensor::diff (const std::unordered_set< T, Hash, KeyEqual > &lhs, const std::unordered_set< T, Hash, KeyEqual > &rhs)
 
template<class T >
std::vector< T > freetensor::cat (const std::vector< T > &lhs, const std::vector< T > &rhs)
 
template<class T , class U >
std::vector< T > freetensor::filter (const std::vector< T > &vec, const U &callback)
 
std::string freetensor::tolower (const std::string &s)
 
std::string freetensor::slice (const std::string &s, int begin, int end)
 
std::string freetensor::slice (const std::string &s, int begin)
 
template<class T >
requires std::ranges::range<T> && (!std::convertible_to<T, std::string>)
std::ostream & freetensor::operator<< (std::ostream &os, const T &r)
 
template<typename... Ts>
std::ostream & freetensor::operator<< (std::ostream &os, std::tuple< Ts... > const &tuple)
 
template<std::ranges::range Container>
std::string freetensor::join (Container &&c, const std::string &splitter)
 
auto freetensor::join (const std::string &splitter)
 
template<std::ranges::range Container>
auto freetensor::operator| (Container &&c, const _Join &joiner)