gpt4 book ai didi

c++ - 如何初始化常量字符串集

转载 作者:太空宇宙 更新时间:2023-11-04 15:01:12 24 4
gpt4 key购买 nike

对于一个小测试,我想用 C++ 将一些标记存储为 QString 来初始化一个 QSet。有没有一种简单的方法可以在 C++ 中做这样的事情?

#include <iostream>
#include <QSet>
#include <QString>

const QString TK_IDENT = "ID";
const QString TK_DESC = "DESC";
const QString TK_SPEC = "SPEC";

// THIS STUFF AS A ONELINER
const QSet<QString> TOKEN(TK_IDENT, TK_DESC, TK_SPEC);

int main(int argc, char *argv[]) {
bool NOK = TOKEN.contains("TEST");
bool OK = TOKEN.contains("IDENT");
std::cout << NOK << std::endl;
std::cout << OK << std::endl;
return 0;
}

最佳答案

当您查看 QSet 的文档时,您会发现它有一个采用 std::initializer_list 的构造函数。所以,使用统一的初始化语法,写:

const QSet<QString> TOKEN{TK_IDENT, TK_DESC, TK_SPEC};

由于这些是 C++11 功能,因此您需要一个 C++11 编译器。此外,必须相应地编译 Qt。据我所知,initializer_list ctors 是在 Qt 4.8 5.1 中添加回来的。 (更新:Igor 的评论是正确的:一些类,如 QStringList 在 4.8 中获得了它们的 initlist ctor,QSet 在 5.1 中获得了它。)

关于c++ - 如何初始化常量字符串集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com