我給下面的代碼來說明我的問題,你可以在他們http://cpp.sh/的std ::載體,它的初始化指針一致性
// Example program
#include <iostream>
#include <string>
#include <vector>
int main()
{
int *p;
p = new int [10];
for(int i=0; i<10; i++)
p[i] = i;
std::vector<int> vecArray(p,p+10);
vecArray[3]=300;
for(int i=0; i<10; i++)
std::cout<<vecArray[i]<<std::endl;
for(int i=0; i<10; i++)
std::cout<<p[i]<<std::endl;
delete []p;
}
從代碼可以看出,指針p
用於initialze後矢量vecArray
然後當向量的內容被改變也不會affact在指針的內容。我的問題是:爲什麼vctor的內容總是與指針相同?
你想在'P [3]'後'vecArray [3] = 300改變數值;'? – SingerOfTheFall
所有容器類都存儲數據的硬拷貝,否則它們將毫無用處。 – Lundin
@SingerOfTheFall是的。 – feelfree