在c ++ 17中是否可以调用此构造函数
vector( size_type count, const T& value, const Allocator& alloc = Allocator());
对vector<int>
使用统一初始化?似乎std::vector<int> data{10, 20}
创建了一个大小为2的向量。
答案 0 :(得分:3)
有可能吗?当然。
struct size_type {
template<class T, std::enable_if_t<std::is_same_v<T, std::vector<int>::size_type>>* = nullptr>
operator T() const {
return val;
}
std::vector<int>::size_type val;
};
std::vector<int> vi {size_type{10}, 4}; // vector of 10 ints with value 4
只要value_type
与size_type
的类型不同,此方法就起作用。
您应该这样做吗?不。
答案 1 :(得分:2)
确定:
std::vector<int> vi{10, 4, std::allocator<int>()};
但是括号没有内在的错误。