将结构传递给unordered_map时出现分段错误

时间:2012-03-01 01:32:04

标签: c++ struct segmentation-fault unordered-map

你好几天前我遇到了一个错误。代码不一样,但与下面列出的类似:

     struct AB{

          vector<int> * temp;

          AB(){
              temp = new vector<int>;

          }

          AB(const AB &other){

                     temp = new vector<int> 
                    //and I am memberwise copying other.temp to temp. (Not shown here)
          }
         ~AB(){
                      delete AB;
          }
      };    

在主要班级我正在做这个

      unordered_map<int, AB> mapOfAB;
      mapOfAB[0].temp->push_back(1);

这给了我一个分段错误,但如果我将temp作为堆栈(非动态)变量,它运行正常。我希望我足够具体。

提前致谢

1 个答案:

答案 0 :(得分:3)

您有一个原始指针,并且您没有赋值运算符。您违反了Rule of Three