がスニペットですが、私はベクトルをコピーせずにsecond
変数にfirst
変数を指すようにしたい:ポインタを変更してベクトルを変更すると、C++で動かないのですか?以下
#include <iostream>
#include <vector>
std::vector<int> second (4,100);
void modify(std::vector<int>* i) {
i = &second;
}
int main()
{
std::vector<int> first; // empty vector of ints
modify(&first);
for (std::vector<int>::iterator it = first.begin(); it != first.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
Iが出力さ100 100 100 100
ことが期待ながら出力は、空です。
誰もこのようなベクターを変更できない理由についてアイデアはありますか?
同じ方法で「ポインタを変更する」ことで「int」を「変更」できますか?たぶんそれはベクトルとは関係ありませんか? – juanchopanza