Optimumkan fungsi parameter lalai dan pembolehubah C++: Parameter lalai: Benarkan fungsi menggunakan nilai lalai untuk mengurangkan lebihan. Letakkan parameter lalai terakhir untuk meningkatkan kebolehbacaan. Gunakan parameter lalai constexpr untuk mengurangkan overhed. Gunakan pengikatan berstruktur untuk meningkatkan kebolehbacaan parameter lalai yang kompleks. Parameter pembolehubah: membenarkan fungsi menerima bilangan parameter yang berubah-ubah. Cuba elakkan menggunakan hujah variadic dan gunakannya hanya apabila perlu. Optimumkan fungsi variadic menggunakan std::initializer_list untuk meningkatkan prestasi.
Optimumkan penggunaan parameter lalai dan variadik dalam fungsi C++
Parameter lalai
Parameter lalai membenarkan fungsi menggunakan nilai lalai tidak disediakan apabila parameter tertentu tidak disediakan Ini membantu mengurangkan kod berlebihan dalam panggilan fungsi. Contohnya:
int add(int a, int b = 0) { return a + b; } int main() { cout << add(1) << endl; // 输出 1 cout << add(1, 2) << endl; // 输出 3 }
Parameter variadik
Parameter variadik membenarkan fungsi menerima bilangan parameter yang berubah-ubah. Ini berguna untuk fungsi yang perlu mengendalikan bilangan argumen yang tidak diketahui. Contohnya:
int sum(int num, ...) { va_list args; va_start(args, num); int sum = num; int arg; while ((arg = va_arg(args, int)) != 0) { sum += arg; } va_end(args); return sum; } int main() { cout << sum(1) << endl; // 输出 1 cout << sum(1, 2, 3, 4, 5) << endl; // 输出 15 }
Petua Pengoptimuman
Kes praktikal:
Pengoptimuman parameter boleh ubah:
// 旧版:存在性能开销 int max(int num, ...) { va_list args; va_start(args, num); int max = num; int arg; while ((arg = va_arg(args, int)) != 0) { max = std::max(max, arg); } va_end(args); return max; } // 新版:使用 std::initializer_list 优化 int max(int num, std::initializer_list<int> args) { return *std::max_element(args.begin(), args.end(), [](int a, int b) { return a > b; }); }
Pengoptimuman parameter lalai:
// 旧版:默认值不在最后,可读性差 int add(int b, int a = 0) { return a + b; } // 新版:默认值在最后,可读性好 int add(int a, int b = 0) { return a + b; }
Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan penggunaan parameter lalai dan parameter variadik dalam fungsi C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!