小编Uni*_*ron的帖子

在C++中删除对象

这是我的示例代码:

void test()
{
   Object1 *obj = new Object1();
   .
   .
   .
   delete obj;
}
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio中运行它,它在'delete obj;'的行中崩溃.这不是释放与对象关联的内存的正常方法吗?我意识到它会自动调用析构函数......这是正常的吗?


这是一段代码:

    if(node->isleaf())
    {
        vector<string> vec = node->L;
        vec.push_back(node->code);
        sort(vec.begin(), vec.end());

        Mesh* msh = loadLeaves(vec, node->code);

        Simplification smp(msh);

        smp.simplifyErrorBased(errorThreshold);

        int meshFaceCount = msh->faces.size();

        saveLeaves(vec, msh);

        delete msh;
    }
Run Code Online (Sandbox Code Playgroud)

loadleaves()是一个从磁盘读取网格并创建一个Mesh对象并返回它的函数.(想想vec并且node->code只是有关要打开的文件的信息)

我应该删除该delete msh;线路吗?

c++ memory-management object new-operator

28
推荐指数
2
解决办法
14万
查看次数

如何在Windows上查看代理设置?

我们的工作笔记本电脑配置为使用代理访问外部网站,我无权查看代理信息.我们所有的应用程序(如IDE)都配置为使用系统代理.有没有办法可以检查代理设置; 例如,在chrome或命令提示符或任何其他方式?

windows proxy google-chrome command-prompt

27
推荐指数
4
解决办法
12万
查看次数

检查3点是否在同一条线上

我想知道一段代码,它实际上可以告诉我2D空间中的3个点是否在同一条线上.伪代码也足够了,但Python更好.

pseudocode

26
推荐指数
2
解决办法
4万
查看次数

Selenium Webdriver:在文本字段中输入文本

当我在文本字段中输入文本时,它将被删除.

这是代码:

String barcode="0000000047166";

WebElement element_enter = _driver.findElement(By.xpath("//*[@id='div-barcode']"));

element_enter.findElement(By.xpath("//html/body/div[1]/div[3]/div[1]/form/div/div/input")).sendKeys("barcode");
Run Code Online (Sandbox Code Playgroud)

java selenium selenium-webdriver

26
推荐指数
2
解决办法
15万
查看次数

调用析构函数然后构造函数(重置对象)

我想重置一个对象.我可以通过以下方式进行吗?

anObject->~AnObject();
anObject = new(anObject) AnObject();
// edit: this is not allowed: anObject->AnObject();
Run Code Online (Sandbox Code Playgroud)

此代码显然是在placement new中分配的对象的典型生命周期的子集:

AnObject* anObject = malloc(sizeof(AnObject));
anObject = new (anObject) AnObject(); // My step 2.
// ...
anObject->~AnObject(); // My step 1.
free(anObject)
// EDIT: The fact I used malloc instead of new doesn't carry any meaning
Run Code Online (Sandbox Code Playgroud)

唯一改变的是构造函数和析构函数调用的顺序.

那么,为什么在以下常见问题解答中 出现所有威胁呢?

[11.9]但是如果我用new分配了我的对象,我可以显式调用析构函数吗?

常见问题解答:除非对象分配了新的展示位置,否则您不能.必须删除new创建的对象,它会做两件事(记住它们):调用析构函数,然后释放内存.

FQA:翻译:删除是一种明确调用析构函数的方法,但它也会释放内存.您也可以在不释放内存的情况下调用析构函数.在大多数情况下它很丑陋而且无用,但你可以做到这一点.

析构函数/构造函数调用显然是普通的C++代码.代码中使用的保证直接来自放置新保证.它是标准的核心,它坚如磐石.它怎么称为"脏"并被表现为不可靠的东西?

您是否认为新的插入式和非插入式实施是不同的?我正在考虑一些病态的可能性,例如,常规的新的可以放置在块之前分配的内存块的大小,其中放置新的显然不会这样做(因为它不分配任何内存).这可能会导致某些问题出现间隙...... 这样的新()实现是否可行?

c++ memory-management new-operator

24
推荐指数
6
解决办法
1万
查看次数

RegEx调试

我正在通过两个单独的调试工具调试^(A+)*B一个字符串上的正则表达式AAAC(例如来自rexegg.com):我有权访问:

  1. regex101.com
  2. RegexBuddy v4

以下是结果(左侧的regex101):

工具出口(左边是regex101)

我的问题主要不在于对我来说同样重要的步骤数量,而是回溯的方式.为什么我们看到差异?(regex101使用PCRE lib并且我将RegexBuddy lib设置为相同)

全面的逐步解释对我有利.

regex pcre backtracking

21
推荐指数
2
解决办法
785
查看次数

在安装之前检查可用的pip包版本

我想在安装之前知道什么版本的软件包可用.我知道您可以使用"pip show"检查已安装的软件包的版本,但我想检查其存档中可用的软件包版本.然后,一旦我识别它们,你如何选择一个特定的安装?

python pip

20
推荐指数
2
解决办法
1万
查看次数

为什么这个向量迭代器不可递增?

我正在尝试删除向量的内容而我收到错误 - 向量迭代器不可递增,为什么会这样?

这是我的析构函数:

City::~City()
{
    vector <Base*>::iterator deleteIterator;
    for (deleteIterator = m_basesVector.begin() ; deleteIterator != m_basesVector.end() ; deleteIterator++)
        m_basesVector.erase(deleteIterator);
}  
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ iterator memory-management vector

19
推荐指数
2
解决办法
3万
查看次数

从哪里开始创建Minecraft客户端模组

我看了整个网络和YouTube,由于某种原因,这是一些绝密信息或者其他什么,但我正在试图找到从哪里开始制作Minecraft客户端模块,最好是可以放入一个包中的东西喜欢为用户提供简单的野兽或技术包,但无论哪种方式都可以.

我将如何创建一个mod?我熟悉eclipse和java编程本身,但我不知道从哪里开始编写插件.

我已经尝试过设置Minecraft Forge,但由于某种原因,它非常令人困惑和非常混乱.我不能只包括一些Minecraft库,从一个简单的样板开始,然后从那里开始?(就像开发Bukkit一样)

java eclipse minecraft minecraft-forge

19
推荐指数
1
解决办法
1万
查看次数

将逗号分隔值转换为List <Long>

假设我有一组像1,2,3,4,5,6,7输入一样的数字String.我想将这些数字转换ListLong对象,即List<Long>.

任何人都可以推荐最简单的方法吗?

java

18
推荐指数
3
解决办法
3万
查看次数