我在 .h 文件中声明了一个 std::map
#include "pl.h"
#include <conio.h>
#include <iostream>
#include <fstream>
#include <string>
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>
#include <vector>
#include <map>
using namespace std;
class ReadingXDSLfile
{
public:
ReadingXDSLfile();
~ReadingXDSLfile();
void readDotXDSLFile(string fileName, ifstream &file);
void writeNodesList();
protected:
typedef std::map<std::string, int> nodesMap;
nodesMap nodes;
std::vector<string> nodesName;
std::map<std::string, int>::iterator nodeItr, nodeItr1;
string outFileName;
private:
};
并且在 .cpp 文件中,当我尝试使用以下代码行插入项目时,它会给出访问冲突错误
int counter=0;
string strNode;
...
....
....
std::pair<string, int>prNode (strNode, counter);
nodes.insert(prNode);
错误:
Unhandled exception at 0x0043c5d9 in testMMHC.exe: 0xC0000005: Access violation reading location 0x0000002c.
现在我在函数(.cpp 文件)中声明了一个临时映射变量,它允许我插入。但是当我将临时映射复制到头文件中声明的全局映射时,它会进入无限循环并且永远不会退出。
它发生在头文件中声明的所有映射变量中。