首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++11: vector.size()在push_back()之后没有在Eclipse debug watcher中更新,clear()

C++11: vector.size()在push_back()之后没有在Eclipse debug watcher中更新,clear()
EN

Stack Overflow用户
提问于 2018-05-08 15:49:08
回答 1查看 94关注 0票数 1

我的代码包含一个循环,该循环附加两个向量并丢弃其中一个向量。

代码:

代码语言:javascript
复制
for (int j = 0; j < superpixels[orgIndex].size(); j++)
{
    superpixels[dstIndex].push_back(superpixels[orgIndex][j]);
}
superpixels[orgIndex].clear();
std::vector<int>().swap(superpixels[orgIndex]);

但是,Eclipse调试器读取到在push_back()之后superpixelsdstIndex.size()仍然没有改变。

在代码执行前的第一种情况下,orgIndex = 1,dstIndex = 287,superpixels1.size() = 191,superpixels287.size() =1。

在循环执行一次之后,我看到superpixels1的191值已经成功地附加到超像素287

然而,Eclipse调试器中的'Expression‘选项卡仍然显示为superpixels1.size() = 191和superpixels287.size() =1(它们应该分别为0、192 )

Eclipse调试器控制台显示:

代码语言:javascript
复制
Name : superpixels[1].size()
Details:0
Default:191
Decimal:191
Hex:0xbf
Binary:10111111
Octal:0277

Name : superpixels[287].size()
Details:192
Default:1
Decimal:192
Hex:0xc0
Binary:11000000
Octal:0300

为什么会发生这种情况?我应该怎么做才能正确地更新它们?

我的Eclipse版本是: Version: Oxygen Release (4.7.0) Build :20170620-1800.

构建标志:-c -fmessage-length=0 -std=c++11 -pthread

EN

回答 1

Stack Overflow用户

发布于 2018-05-08 22:21:26

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50228563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档