简单:如何在C ++中初始化一个新的unordered_map <std :: string,std :: string> *(指针)?</std :: string,std :: string>

时间:2012-03-29 13:07:50

标签: visual-studio-2008 c++-cli

unordered_map<std::string, std::string>* Accounts;

我有这个代码从指针初始化,我可以把指针(*)从它中删除,我可以直接将值分配给它,但问题是我正在使用C ++ / Cli Visual Studio 2008和我无法在类范围

中定义变量

因为它会抛出此错误:

  

错误C4368:无法将“帐户”定义为托管成员   'Test :: Login':混合类型不是   支持C:\   Projects \ Test \ Login.h 32

所以我被告知我应该创建一个指针,然后在构造函数中初始化它,但是如何从指针创建它? (我想像Accounts = new unordered_map) 我总是直接去。

我希望我足够清楚。

@edit

public ref class Login: public System::Windows::Forms::Form
    {
    public:

        unordered_map< std::string, std::string >* Accounts;

        Test(void)
        {
            this->Accounts = new unordered_map<std::string, std::string>();
        this->Accounts["hello"] = "test";
                    cout << this->Accounts["hello"];
            InitializeComponent();
            //
            //TODO: Add the constructor code here
            //

        }

它会抛出此错误:

  

错误4错误C2107:非法索引,间接不是   允许C:\ Projects \ Test   Login.h 37

提前致谢!

1 个答案:

答案 0 :(得分:2)

unordered_map<std::string, std::string>* Accounts = new unordered_map<std::string, std::string>();

记住你需要在完成后删除它。

delete Accounts;