c++ - 获取向量的不同值并保持顺序
问题描述
我想获得实数向量的不同值并保持它们的顺序。例如:[1, -1, 5, -1] -> [1, -1, 5]。到目前为止我做了什么:
std::vector<double> getDistinctValues(const std::vector<double>& data)
{
std::unordered_set<double> distinct(data.begin(), data.end());
std::vector<double> result(distinct.begin(), distinct.end());
return result;
}
此解决方案不会保持顺序。
解决方案
沿着这些思路,也许:
std::vector<double> sort(const std::vector<double>& data) {
std::vector<double> result;
std::unique_copy(data.begin(), data.end(), std::back_inserter(result));
return result;
}
sort
注意:当函数的明确目标是保留元素的顺序时,我不会命名函数。
推荐阅读
- php - Facing problem to show properly sub-categories in the Categories Dropdown list
- java - 将字符串类型引用标记为易失性安全吗?
- angular9 - how to use ngx-admin backend
- php - Why do my PHP Delete button and functions only work firefox?
- c# - 当我序列化一个 html 标签时,我在 c# 中得到 <\/b>
- python - 如何使用 Python REST API 在 openfire 中创建聊天室并将用户添加到房间中
- c++ - 同义词 Union with reference 的使用?
- docker - 使用 Traefik 对具有 Swagger UI 和 MinIO 的多个 docker 容器进行反向代理抛出未找到错误
- css - 如何为 Wordpress Blogroll 上的类别按钮分配不同的颜色
- php - 我正在尝试在单个功能中加载视图页面