-2 c++ templates boolean vector stream
我正在尝试编写一个名为的模板化函数unique(),该函数std::vector仅使用<vector>,<set>和<iostream>标头来检测 a 是否只有唯一元素。
template <typename T>
bool unique(const std::vector<T>& container){}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
如果您可以使用std::set. 由于std::set将只存储唯一的项目,你可以创建一个std::set从std::vector并比较它们的大小。如果它们匹配,则向量具有唯一元素。那看起来像
template <typename T>
bool unique(const std::vector<T>& container)
{
return container.size() == std::set<T>{container.begin(), container.end()}.size();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |