0
#include "BST.hpp"
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main() {

  /* Create an STL vector of some ints */
  vector<int> v;
  v.push_back(3);
  v.push_back(4);
  v.push_back(1);
  v.push_back(100);
  v.push_back(-33);

  /* Create an instance of BST holding int */
  BST<int> b;

  /* Insert a few data items. */
  vector<int>::iterator vit = v.begin();
  vector<int>::iterator ven = v.end();

  for(; vit != ven; ++vit) {
    // all these inserts are unique, so should return a std::pair
    // with second part true
    std::pair<BST<int>::iterator,bool> pr = b.insert(*vit);
    if(! pr.second ) {
      cout << "Incorrect bool return value when inserting " << *vit << endl;
      return -1;
    }

    if(*(pr.first) != *vit) {
      cout << "Incorrect iterator return value when inserting " << *vit << endl;
      return -1;
    }       
  }

プログラムはこのコード行について不平を言います

if(*(pr.first) != *vit)

このコード行について

 BSTIterator(BSTNode<Data>* curr) {
this->curr = curr;

}

これは別のヘッダー ファイルにあります。私はこのバグで 2 日間立ち往生していますが、まだ解決方法がわかりません。ところで、バグは実行時エラーです。これは、標準のコンパイル エラー出力が得られないためです。私の推測では、ポインターは何も指していませんが、それでも間違っている可能性があります。どこからバグを探し始めるか、またはどのように解決するかについての手がかりを得ることができますか?

4

1 に答える 1