second
と呼ばれる大きなベクターがあり、大きなベクターを指すように私自身のベクターfirst
が欲しいとしましょう。私はこのコードを書いた:C++での参照によって変更するこの操作のオーバーヘッドは何ですか?
#include <iostream>
#include <vector>
std::vector<int> second (100000,100);
void modify(std::vector<int>& i) {
i = second;
}
int main()
{
std::vector<int> first(1, 1);
modify(first);
return 0;
}
はそれがmodify
機能のためのオーバーヘッドがあることは本当ですか? second
の内容は新しい配列に複製され、first
に渡されるか、無視されるオーバーヘッドで参照渡しされるだけですか?
ここには参照はなく、ポインタのみです。しかし、もっと重要なのは、 'modify'関数は実際には何も役に立ちません。 –
@OliverCharlesworth申し訳ありません、ちょうど今すぐスニペットを修正しました –
@FrançoisAndrieux申し訳ありません、今すぐスニペットを修正しました –