2011-10-22 65 views
2

请我就两个问题在C载体++:初始化和破坏++二维矢量用C

  1. 如何解决在下面的代码的问题:

    • 在我的头文件我有:

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

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

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

    我知道有一些错误,但我不知道如何解决它。

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

我的问题的任何建议,想法或解决方案,非常感谢。

回答

2

你可能想单引号' '

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

否则,你可以传递一个字符串" "这是造成这个错误。

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

编辑:

你也需要一起做它:

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

你不能申报和类似的初始化分开。 (至少不是没有额外的任务)。

+0

谢谢!请现在我收到一个不同的错误: 错误:无法匹配调用'(std :: vector >,std :: allocator >>>)(int,std :: vector >)'| – CompilingCyborg

+0

什么是新错误? – Mysticial

+1

我刚刚编辑了答案。 – Mysticial