Chắc chắn, bạn có thể có mẫu mặc định các thông số:
template <typename T, typename U, typename V = U>
template <typename T, typename U = int, typename V = std::vector<U> >
Thư viện tiêu chuẩn thực hiện điều này tất cả các thời gian - hầu hết container mất 2-5 thông số! Ví dụ, unordered_map
thực sự là:
template<
class Key, // needed, key type
class T, // needed, mapped type
class Hash = std::hash<Key>, // hash functor, defaults to std::hash<Key>
class KeyEqual = std::equal_to<Key>, // comparator, defaults to Key::operator==()
class Allocator = std::allocator<std::pair<const Key, T>> // allocator, defaults to std::allocator
> class unordered_map;
Typicall bạn chỉ sử dụng nó như std::unordered_map<std::string, double>
mà không cho nó bất kỳ suy nghĩ thêm.
Nguồn
2011-10-16 20:50:11