Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ stl_tree.h中的运算符++不匹配,即使我没有更改它_C++_Dictionary_Stl - Fatal编程技术网

C++ stl_tree.h中的运算符++不匹配,即使我没有更改它

C++ stl_tree.h中的运算符++不匹配,即使我没有更改它,c++,dictionary,stl,C++,Dictionary,Stl,我让代码在main.cpp中正常工作,但突然出现以下错误: /opt/lintula/gcc/include/c++/5.2.0/bits/stl_tree.h:2223: error: no match for ‘operator++’ (operand type is ‘std::__cxx11::basic_string<char>’) for (; __first != __last; ++__first) ^ 我

我让代码在main.cpp中正常工作,但突然出现以下错误:

/opt/lintula/gcc/include/c++/5.2.0/bits/stl_tree.h:2223: error: no match for ‘operator++’ (operand type is ‘std::__cxx11::basic_string<char>’)
  for (; __first != __last; ++__first)
                            ^
我还没有碰过stl_树。h,为什么那里会发生错误?当我不知道从哪里开始时,如何调试此类问题

下面是代码,我试图以 名称:指向std::map

#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <fstream>

using namespace std;

int main()
{
   map<string, string> piste_hakemisto;
   string input_tiedosto;
   cout << "Input file: ";
   cin >> input_tiedosto;
   ifstream tiedosto_olio(input_tiedosto);
   if (not tiedosto_olio){
       cout << "Error! The file " << input_tiedosto << " cannot be opened.";
       return EXIT_FAILURE;
   }
   string nimi;
   string pisteet;
   string rivi;
   while( getline(tiedosto_olio, rivi)){
       getline(tiedosto_olio, rivi);
       int erotin_indeksi = rivi.find(":");
       nimi = rivi.substr(0, erotin_indeksi);
       pisteet = rivi.substr((erotin_indeksi));
       piste_hakemisto = {nimi, pisteet};
   }

}

通常从添加的最后一段代码开始。我猜是这样的

piste_hakemisto = {nimi, pisteet};
那应该是

piste_hakemisto.insert({nimi, pisteet});
做同样事情的其他方法也是可能的


这是模板的一个常见问题,错误消息通常很模糊,并且引用模板定义中的深层代码。

这很可能不是您遇到的唯一错误。可能是第一个,但在错误流的某个地方是对您的文件的引用。是的,这不是唯一的错误,但我找不到对main.cpp的任何引用,函数中有一个错误。h和stl_iterator_base_types.hDid您的意思是写piste_hakemisto[nimi]=pisteet;而不是piste_hakemisto={nimi,pisteet};?约翰给了我一个解决这个问题的好办法。我以前收到来自QT的模糊错误消息,不知道为什么,但现在它似乎可以与map::insert一起工作。