我第一次学习stl功能,所以这段代码来自dietel,我想在dev-c ++ orwell 5.4中实现,但是代码没有运行,问题是什么。 stl库是否未包含在dev-cpp中?
它显示错误 - 地图没有命名类型?
#include <iostream>
#include <map>
typedef map< int , double , less< int > > Mid ;
using namespace std ;
int main()
{
Mid pairs ;
pairs.insert( Mid::value_type( 15 , 2.7 ) ) ;
pairs.insert( Mid::value_type( 30 , 111.11 ) ) ;
pairs.insert( Mid::value_type( 5 , 1010.1 ) ) ;
pairs.insert( Mid::value_type( 10 , 22.22 ) ) ;
pairs.insert( Mid::value_type( 25 , 33.333 ) ) ;
pairs.insert( Mid::value_type( 5 , 77.54 ) ) ;
pairs.insert( Mid::value_type( 20 , 9.345 ) ) ;
pairs.insert( Mid::value_type( 15 , 99.3 ) ) ;
cout << "pairs contains:\nKey\tValue\n" ;
for( Mid::const_iterator iter = pairs.begin() ;
iter != pairs.end() ; ++iter )
cout << iter->first << '\t' << iter->second << '\n' ;
pairs[ 25 ] = 9999.99 ;
pairs[ 40 ] = 8765.43 ;
cout << endl ;
cout << "After subscript operations: " ;
cout << endl ;
for( Mid::const_iterator iter = pairs.begin() ;
iter != pairs.end() ; ++iter )
cout << iter->first << '\t' << iter->second << '\n' ;
cout << endl ;
return 0 ;
}
答案 0 :(得分:1)
在使用namespace std之前你是typedefing map,这就是编译器无法看到它的原因
答案 1 :(得分:1)
#include <iostream>
#include <map>
typedef map< int , double , less< int > > Mid ;
using namespace std ;
在此代码段中,您在使用map
之前告知您正在使用命名空间std
。因此,您的编译器不知道在哪里查找map
并告诉您它从未听说过它。只需写下:
using namespace std ;
typedef map< int , double , less< int > > Mid ;
应该解决这个问题。