dev cpp中的stl库

时间:2013-07-02 09:35:30

标签: c++ stl dev-c++

我第一次学习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 ; 

}

2 个答案:

答案 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 ;

应该解决这个问题。