void func(char c) {}
void func(std::string) {}
int main() {
std::string s("HelloWorld");
// method 1
func(s);
// method 2
for(std::size_t i = 0; i < s.size(); i++) {
func(s[i]);
}
}
2回目の呼び出しで値渡しがなぜOKですか?それは効果的に最後に同じ数の文字をコピーしていないのですか?あるいは、彼らは実際に同じで、私は何かが足りないのですか?値渡し文字列渡し値ごとにすべての文字を渡す
(これは、文字列内の各文字のための関数を呼び出すことは常にOKであることを意味しません)とに問題がありますか?関数は一度に1つの文字しか処理しないか、文字列全体を処理する必要がありますか? –
この2つのケースでは、関数呼び出しの数もカウントする必要があります。そして、あなたが何が最速であるか疑問に思っているなら、いくつかの測定をしてください。もちろん、参照を渡すことについて忘れないでください。 –