我正在使用一个充分利用它的程序std::vector.还有很多分配/解除分配,数十亿分配,我试图避免尽可能多的分配/解除分配.由于我对C++比较陌生,所以我在使用向量时会有一些关于分配的问题(例如,在向其添加元素时).我在Win7 64位机器上,程序是32位,我正在使用当前版本的MinGW编译器.
我想知道,在下列情况下会发生什么,即如果复制了矢量,作为参考传递,...
1.
std::vector<T> fillVector() {
std::vector<T> returnVector;
...
return returnVector;
}
std::vector<T> myVector = fillVector();
Run Code Online (Sandbox Code Playgroud)
2.
std::vector<T>& fillVector() {
std::vector<T>* returnVector = new std::vector<T>;
...
return (*returnVector);
}
std::vector<T> myVector = fillVector();
Run Code Online (Sandbox Code Playgroud)
3.
std::vector<T>* fillVector() {
std::vector<T>* returnVector = new std::vector<T>;
...
return returnVector;
}
std::vector<T>* myVector = fillVector();
Run Code Online (Sandbox Code Playgroud)
以下是不同的操作:
4.
std::vector<T> myVector1;
... (myVector1 being filled)
std::vector<T> myVector = myVector1;
Run Code Online (Sandbox Code Playgroud)
5.
std::vector<T>* myVector1 = new std::vector<T>;
... (myVector1 being filled)
std::vector<T> myVector = (*myVector1);
Run Code Online (Sandbox Code Playgroud)
假设我不想改变 …