Я объявил зЬй :: карту в файле .hстанд :: карта вставки застревает в бесконечном цикле или дает нарушение прав доступа Ошибка
#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), это позволяет мне вставлять. Но когда я копирую карту темпа в глобальную карту, объявленную в заголовочном файле, она переходит в бесконечный цикл и никогда не выходит.
Это происходит со всеми переменными карты, объявленными в заголовочном файле.
Просьба указать некоторые сведения о том, как вы определяете и используете 'strNode' и' counter' перед этой строкой. Еще лучше, пожалуйста, предоставьте полный исходный код. –
Согласен. Вы пробовали что-то вроде 'nodes.insert (pair (« Hello », 5));' отлаживать и тестировать, работает ли карта? –
Да, это также дает мне такую же ошибку. Если я использую 'nodes.clear();' перед началом вставки, то он застрял в бесконечном цикле. – DataMiner