我是C ++的新手,正在制作一个虚拟测验游戏,我困惑于保存问题库,无论是否在
const QVector<QString> AllQuestions = QVector<QString>() << "question 1" << "question 2";
Run Code Online (Sandbox Code Playgroud)
要么
static QVector<QString> AllQuestions() {
return QVector<QString>() << "question 1" << "question 2";
}
Run Code Online (Sandbox Code Playgroud)
在性能上哪个更好。请注意,银行使用率不会很高
正如@Axium 在评论中提到的,性能差异可以忽略不计。唯一的区别是第一种方法不会每次返回时都创建局部变量,因此它的性能会更高(甚至几毫秒)。
但我不喜欢第一种方法是,如果将来您定义另一个依赖于 的全局/静态变量AllQuestions,您将遇到麻烦,因为您无法定义全局/静态变量的初始化顺序。因此,我建议使用这样的东西:
static QVector<QString> AllQuestions() {
static QVector<QString> all_questions = { "question 1", "question 2"};
return all_questions;
}
Run Code Online (Sandbox Code Playgroud)