gpt4 book ai didi

c++ - 如何 "do, if expression increased"?

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:45 27 4
gpt4 key购买 nike

我有比特币源代码(多线程),我打算添加一些新行。在比特币网络上,数据消息在数据存储在 vector 中的地方交换。我想在 vector 大小增加时执行一些指令:

如何在 C++ 中编写以下模式以便在 if 中执行语句:

if ("vVector.size() did not increase")
//*instruction*

?

注意:vVector 会不时自动递增。它实际上是另一个载体的克隆,可以收集东西并在我没有也不愿意控制它的情况下扩展。

编辑:

当我这样做时:

if (!(vVector.size()++))
//do whatever is here

我收到以下错误:需要左值作为增量操作数

vVector 由在单独的头文件中声明的函数填充到同一 cpp 文件的另一个函数中。

这是一个带有简短描述的代码片段:http://hastebin.com/amisuvafab.coffee

最佳答案

int init_size = v.size();
...
if(init_size == v.size()) {
// do whatever is here
}

编辑时:

std::vector 的大小只有在您向其中插入元素时才会增加。因此,vVector.size()++ 首先是没有意义的。

您收到错误的原因是,执行 if(!(vVector.size()++)) 是非法的。 std::vector::size 成员函数将返回一个 rvalue 而不是后递增 operator++lvalue > 要求。现在关于 rvaluelvalue 之间的区别,请参阅 link .

关于c++ - 如何 "do, if expression increased"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137594/

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