gpt4 book ai didi

c++ - 访问 Multiset 元素 C++ 时出错

转载 作者:太空狗 更新时间:2023-10-29 23:14:42 25 4
gpt4 key购买 nike

我得到了错误

../src/internet-stack/mp-tcp-socket-impl.cc: In member function ‘void ns3::MpTcpSocketImpl::OpenCWND(uint8_t, uint32_t)’:
../src/internet-stack/mp-tcp-socket-impl.cc:2471: error: no match for ‘operator-’ in ‘sFlow->ns3::MpTcpSubFlow::measuredRTT.std::multiset<_Key, _Compare, _Alloc>::end [with _Key = double, _Compare = std::less<double>, _Alloc = std::allocator<double>]() - 1’
/usr/include/c++/4.4/bits/stl_bvector.h:179: note: candidates are: ptrdiff_t std::operator-(const std::_Bit_iterator_base&, const std::_Bit_iterator_base&)

因为我尝试过:

  double maxrttval = *(sFlow->measuredRTT.end() - 1);

现在,在相同的代码中 double baserttval = *(sFlow->measuredRTT.begin());工作得很好。

我不明白哪里出了问题。我必须像访问第一个元素一样访问最后一个元素。感谢您的帮助。

最佳答案

multiset 的迭代器类别是BidirectionalIterator , 不支持 operator+operator-, 它们只被 RandomAccessIterator 支持.但它支持operator--,所以你可以:

double maxrttval = *(sFlow->measuredRTT.end()--);

你也可以通过反向迭代器获取最后一个元素:

double maxrttval = *(sFlow->measuredRTT.rbegin());

关于c++ - 访问 Multiset 元素 C++ 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32628379/

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