在C ++中初始化和破坏2D向量

时间:2011-10-22 09:18:20

标签: c++ vector multidimensional-array std stdvector

请问我对C ++中的向量有两个问题:

  1. 如何解决以下代码中的问题:

    • 在我的头文件中,我有:

      vector< vector< char > > vec;
      
    • 在我的(.cpp)文件中,我有构造函数的定义:

      vec(20, vector<char>(25, " "));
      
    • 我收到的错误如下:

      error: invalid conversion from 'const char*' to 'char'
      

    我知道有什么不对,但我不知道如何解决它。

  2. 在我的程序结束后,如何正确地破坏我的二维向量以释放内存?

  3. 非常感谢我提出的任何建议,想法或解决方案。

1 个答案:

答案 0 :(得分:2)

您可能需要单引号' '

vec(20, vector(25, ' '));

否则,您将传递导致该错误的字符串" "

至于你的第二个问题。你不需要销毁它。当它超出范围时,它将自动释放。

编辑:

您还需要一起完成:

vector< vector< char > > vec(20, vector<char>(25, ' '));

您无法将声明与初始值设定项分开。 (至少没有额外的任务。)