我非常喜欢Visual Studio Code,但到目前为止,它缺少VS 2017中的某些功能。但是,我更喜欢使用VS Code默认(Dark +)主题中的颜色。有什么想法如何将其移植到VS 2017吗?
我需要建立矩阵矩阵.说,$1\leq i,j\leq n$我必须定义一个矩阵$p_{ij}$,它将是一个矩阵$n\times n$.我能做什么-这是建立一个矩阵$P$是$n^2\times n^2$-但$n=20$没有有关内存出错.
你能告诉我如何解决这个问题吗?
我偶然发现了一种情况,增加向量的容量会损害与其元素相关的一个变量,我希望有人帮助我理解问题到底是什么。
假设我有一个类MyObject和一个vector<MyObject> myVector已经填充了 4 个元素的容器。我也有一个方法:
MyObject* GetFirstActiveElement(vector<MyObject> vec)
{
for (auto& val : vec)
{
if (val->IsActive())
return &val;
}
return nullptr;
}
Run Code Online (Sandbox Code Playgroud)
然后我有一段代码如下:
MyObject myObject new MyObject();
MyObject* firstActiveElement = GetFirstActiveElement(myVector);
myVector.insert(myVector.begin() + 1, myObject);
Run Code Online (Sandbox Code Playgroud)
在最后一行之后,如果我检查firstActiveElement,如果不是nullptr有时它现在是垃圾。
阅读一些文档后,我发现既然myVector有 4 个元素,并且其默认容量为 4,那么再插入一个元素会导致其容量以静默方式增加,而这个 C++ 文档说:
如果new_cap大于capacity(),则所有迭代器(包括尾后迭代器)以及对元素的所有引用都将无效。否则,迭代器或引用不会失效。
我实际上认为这firstActiveElement只是一个指针,所以无论如何它都不应该失效。但显然,它恰好是一个迭代器或对向量的引用,是真的吗?我在这里有点迷失,但我想原因是我对方法的设计GetFirstActiveElement()。