我应该使用全局const向量还是在每次调用时返回此向量的函数

Aya*_*aan 5 c++ qt

我是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)

在性能上哪个更好。请注意,银行使用率不会很高

Gup*_*pta 1

正如@Axium 在评论中提到的,性能差异可以忽略不计。唯一的区别是第一种方法不会每次返回时都创建局部变量,因此它的性能会更高(甚至几毫秒)。

但我不喜欢第一种方法是,如果将来您定义另一个依赖于 的全局/静态变量AllQuestions,您将遇到麻烦,因为您无法定义全局/静态变量的初始化顺序。因此,我建议使用这样的东西:

static QVector<QString> AllQuestions() {
   static QVector<QString> all_questions = { "question 1", "question 2"};
   return all_questions;
}
Run Code Online (Sandbox Code Playgroud)