小编Sir*_*lot的帖子

什么是C++委托?

C++中委托的一般概念是什么?它们是什么,它们如何使用以及它们用于什么?

我想首先以"黑匣子"的方式了解它们,但是关于这些事情的内容的一些信息也会很棒.

这不是最纯粹或最干净的C++,但我注意到我工作的代码库有很多.我希望能够理解它们,所以我可以使用它们,而不必深入研究可怕的嵌套模板.

这两个代码项目文章解释了我的意思,但不是特别简洁:

c++ delegates delegation

137
推荐指数
5
解决办法
14万
查看次数

如何反转C++向量?

C++中是否有内置的向量函数来反转向量?

或者你只需​​要手动完成吗?

c++ stl vector std

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

相当于C++的#region

C++的#region的C++等价物是什么,所以我可以放入自定义代码可折叠位并使我的代码更容易阅读?

c# c++

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

内联关键字与标题定义

在函数之前使用inline关键字和在头文件中声明整个函数之间有什么区别?

所以...

int whatever() { return 4; }
Run Code Online (Sandbox Code Playgroud)

VS

.H:

inline int whatever();
Run Code Online (Sandbox Code Playgroud)

的.cpp:

inline int myClass::whatever()
{
    return 4;
}
Run Code Online (Sandbox Code Playgroud)

就此而言,这是做什么的:

inline int whatever() { return 4; }
Run Code Online (Sandbox Code Playgroud)

c++ optimization inline

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

通过引用传递向量

如果我在一个类中有一个对象向量,我想在另一个类中进行更改,我会尝试通过引用传递所有信息.

虽然我需要通过引用到底需要什么?向量?对象?都?

基本上我要问的是:这些之间有什么区别?

vector&<object> blah; // A reference to a vector of objects?

vector<object&> blah; // A vector of references to objects?

vector&<object&> blah; // A reference to a vector of references to objects???
Run Code Online (Sandbox Code Playgroud)

我真的不确定如何像容器一样引用数组.这些合法吗?

c++ vector

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

案例表达不是恒定的

我在switch语句中得到一个'case expression not constant'错误.但是,标头为使用的常量提供了定义,构造函数在其初始化列表中为它们提供了初始化.

另外,当我将鼠标悬停在"问题"语句上时,它会将它们标识为常量.

const int ThisClass::EXAMPLE_CONSTANT

error expression must have a constant value
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎有点违反直觉.我做了一些研究,发现了其他人的类似问题.他们被告知所有常量实际上必须在'main'中初始化,并且这是语言的限制.这是真的吗?似乎不太可能.

c++

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

对象引用的向量

拥有对象引用的向量是否合法,如下所示?

vector<Agent&> seenAgents;
Run Code Online (Sandbox Code Playgroud)

例如,哪些会被场景中的一些但不是所有对象填充?

我有一个Agent对象的向量,但上面概述的向量应该只包含每个代理当前可以看到的对象 - 这意味着将一直添加和删除引用.

这是语言允许的吗?此外,还有什么我需要注意的吗?如果我从向量中删除引用它会持续存在吗?这是内存泄漏吗?

我似乎在声明向量的行上得到了这个错误:

error C2528: 'pointer' : pointer to reference is illegal
Run Code Online (Sandbox Code Playgroud)

这是直接与线路有关还是最有可能发生在其他地方?它正在构造函数初始化列表中初始化,如下所示:

seenAgents(vector<Agents&>())
Run Code Online (Sandbox Code Playgroud)

c++

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

相当于允许重复键的排序字典

我需要一个数据结构,可以通过与它们关联的浮动键对对象进行排序,最先降低.问题是密钥代表成本所以经常有重复,我不关心这个,因为如果两个具有相同的成本,我只会抓住第一个,因为它没有区别,问题是编译器抱怨.

是否存在行为方式相同但允许重复键的数据结构?

编辑 - 我仍然需要重复项,因为如果一个结果是一个死胡同,我抓住下一个(他们是一个*搜索中的节点)

所以为了清楚起见,它需要允许按顺序排序的重复键.

c# dictionary data-structures

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

错误VSP1712无效.vsp文件

我已生成一个大约4gb的.vsp文件,当我尝试打开它时出现此错误.有谁知道为什么会这样?当我分析较少量的代码时,同样的事情也适用.

c++ profiling visual-studio-2010

11
推荐指数
1
解决办法
2359
查看次数

为什么在C++中这么慢?

我已经将这个简单的方法从C#转换为C++.它读取路径表并填充整数列表(或整数向量的向量).

路径表中的示例行类似于

0 12 5 16 n
Run Code Online (Sandbox Code Playgroud)

我知道有一般这样做的更好的办法,但现在我只想知道为什么我的C++代码正在采取这么多的时间.例如10分钟而不是C#版本的10秒钟.这是我的C++代码.我猜我做的事情有点严重错误.

//Parses the text path vector into the engine
void Level::PopulatePathVectors(string pathTable)
{
    // Read the file line by line.
    ifstream myFile(pathTable);

        for (unsigned int i = 0; i < nodes.size(); i++)
        {
            pathLookupVectors.push_back(vector<vector<int>>());

            for (unsigned int j = 0; j < nodes.size(); j++)
            {
                string line;

                if (getline(myFile, line)) //Enter if a line is read successfully
                {
                    stringstream ss(line);
                    istream_iterator<int> begin(ss), end;
                    pathLookupVectors[i].push_back(vector<int>(begin, end));
                }
            }
        }
    myFile.close();
}
Run Code Online (Sandbox Code Playgroud)

这是C#版本: …

c# c++ io

10
推荐指数
3
解决办法
1376
查看次数