C++大字符串初始化及使用

标签 c++ c arrays string std

您好,我有一个包含大约 500 个字符串的数组。我类的多个函数使用这个变量。我显然不想在整个程序中多次初始化该数组。初始化一次并能够在整个类中使用它的最有效方法是什么?

这是我的意思的一个例子:

一些类.h:

class SomeClass {
   public:
        static const std::string large_list[];
   private:
        void someFunc();
        void someFunc2();
        void someFunc3();
}

一些类.cpp:

void SomeClass::someFunc1(){
        static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
        //do something with the large_list
   }

    void SomeClass::someFunc2(){
        static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
        //do something with the large_list
   }

    void SomeClass::someFunc3(){
        static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
        //do something with the large_list
   }

谢谢。

最佳答案

您可以使用以下类内初始化(注意我没有使用 std::string,因为它的构造函数不是 constexpr):

class SomeClass {
   public:
        static constexpr const char* large_list[] = {"something", "somethingelse", "somethingelse1"};
};

关于C++大字符串初始化及使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16726931/

相关文章:

c - 找到三个最大的轮廓(现在找到两个)

javascript - 遍历 JSON 数组给出 "undefined"结果

c++ - wchar_t 究竟能代表什么?

将连接的三角形分类为组的 C++ 算法

c - 在c中动态分配未知类型的内存

c - 使用 DFS 查找迷宫中的所有路径

javascript - 如何在 javascript 中将子数组字符串数组转换为子数组数组?

java - 线程中的异常 "AWT-EventQueue-0"java.lang.ArrayIndexOutOfBoundsException : 10

c++ - NodeJS : Native c++ module with multi-threading (openmp)

c++ - boost::bind 返回一个函数对象,它是需要指针的函数的参数