c++ - 对象的分离 vector

标签 c++ object vector

我正在编写一个函数,根据其中一个对象的值将一个对象 vector 分成两个 vector 。然后我希望它返回 vector 中的任何一个。

这是我目前的代码

std::vector<AggregatedQuoteType> OrderBook::get_aggregated_order_book(SellBuyType which_side) const
{
    std::vector<AggregatedQuoteType> ret;

    std::vector<AggregatedQuoteType>::const_iterator i = v_OrderInfo.begin();
        for (; i != v_OrderInfo.end(); ++i)
            ((*i).get_SB_type()==BUY ? v_BuyOrders : v_SellOrders).push_back((*i));

    if(which_side==SELL){
        ret = v_SellOrders;
    }
    else{
        ret = v_BuyOrders;
    }
    return ret;
}

编辑

我收到以下错误:

[Error] no matching function for call to 'std::vector::push_back(const AggregatedQuoteType&) const'

最佳答案

您已将函数 get_aggregated_order_book 标记为 const

OrderBook::get_aggregated_order_book(SellBuyType which_side) const
                                                             ^^^^^
                                                             Here!

C++ 中的 const 关键字意味着您不会对类中的任何成员进行更改,我假设是 v_BuyOrdersv_SellOrders是。

如果您要修改 OrderBook 类的成员,则需要使该方法成为非常量。

关于c++ - 对象的分离 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22757573/

相关文章:

c++ - 为什么重复的空基址的存储不与 vtable 指针重叠?

c++ - 如果您不知道原始类型是有符号的还是无符号的,有没有办法从 boost::any 中获取整数

javascript - 使用 for 循环更改对象中的所有键值对

javascript - 将 [op.and] 添加到 Sequelize 查询对象

c++ - 在此上下文中, "<, >"的语法是什么意思?-- std::auto_ptr< sql::Statement > stmt(con->createStatement());

C++ 快速高效地对 40 字节数组执行 bit_count 和 AND 运算

c++ - (c++) 堆上没有任何指针的对象会怎样?

c++ - 在 vector 中插入一些值?

c++ - 为什么此代码无法将 char 推回到 vector <char> 中?

c++ - 如何在 C++ 中比较两个 vector 的字符串内容