gpt4 book ai didi

STL - 如何对 std::map 进行排序?

转载 作者:行者123 更新时间:2023-12-02 12:43:41 25 4
gpt4 key购买 nike

这是我的 map :

typedef std::map<int/*security id*/, PositionMonth> PortfolioMonth;

其中 PositionMonth 是一个结构,例如:

struct PositionMonth
{
Nav::Shares shares_;
Nav::Amount market_value_;

PositionMonth(void)
{}
PositionMonth(const Nav::Amount& market_value
, const Nav::Shares& shares)
: market_value_(market_value)
, shares_(shares)
{}
};

问题:如何按第二个值键参数(按 market_value_,让它为 int)对 std::map 进行排序?示例或链接?

PS。 Boost 方法不感兴趣!

PPS。我无法使用比较仿函数初始化我的 std::map!

感谢您的帮助!

<小时/>

我的解决方案(或者我自己是如何做到的):

template<class T>
struct LessSecondCcy
: std::binary_function<T,T,bool>
{
inline bool operator ()(const T& _left, const T& _right)
{
return _left.second.market_value_.currency() < _right.second.market_value_.currency();
}
};

在函数中:

typedef std::pair<int/*security id*/, _Entry> data_t;

其中_EntryPositionMonth

std::vector<data_t> vec(item.funds_end_.begin(), item.funds_end_.end());
std::sort(vec.begin(), vec.end(), Nav::LessSecondCcy<data_t>());

完成!

最佳答案

several options gamedev.net 。往下看弗鲁尼 (Fruny) 的帖子。

旁白:您为什么不考虑将 Boost 作为可能的解决方案提供商?对于专业 C++ 编码人员来说,这是一个受人尊敬、经过同行评估、文档齐全的解决方案。

关于STL - 如何对 std::map 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4500962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com