当前位置: 技术问答>linux和unix
STL 编译问题
来源: 互联网 发布时间:2016-02-25
本文导语: 我在vstudio 2003里面编译成功的一个程序,到linux下面就报错了。下面是我的小程序,其中有一行是这个map_itr = second.erase(tmp_map_itr); 在linux下编译时(gcc/g++ 3.3.1),报错说没有定义map的operator=操作,请问一下为什么? ...
我在vstudio 2003里面编译成功的一个程序,到linux下面就报错了。下面是我的小程序,其中有一行是这个map_itr = second.erase(tmp_map_itr); 在linux下编译时(gcc/g++ 3.3.1),报错说没有定义map的operator=操作,请问一下为什么?
《c++ primer plus》这本书上作者说程序在vstudio 2003和linux gcc/g++ 3.3.1上都测试过,为什么我的不行呢?
急啊,谢谢大家先!
帮我看一下代码:
#include
#include
#include
#include
using namespace std;
struct data{
int i;
double j;
data(int a, double b):i(a), j(b){}
};
int _tmain(int argc, _TCHAR* argv[])
{
typedef map maptype;
ostream_iterator out(cout, "");
maptype first;
int i;
typedef pair data_pair;
for (i = 0; i first == 3 || map_itr->first == 2) {
maptype::iterator tmp_map_itr;
tmp_map_itr = map_itr;
map_itr = second.erase(tmp_map_itr);
map_itr--;
}
}
return 0;
《c++ primer plus》这本书上作者说程序在vstudio 2003和linux gcc/g++ 3.3.1上都测试过,为什么我的不行呢?
急啊,谢谢大家先!
帮我看一下代码:
#include
#include
#include
#include
using namespace std;
struct data{
int i;
double j;
data(int a, double b):i(a), j(b){}
};
int _tmain(int argc, _TCHAR* argv[])
{
typedef map maptype;
ostream_iterator out(cout, "");
maptype first;
int i;
typedef pair data_pair;
for (i = 0; i first == 3 || map_itr->first == 2) {
maptype::iterator tmp_map_itr;
tmp_map_itr = map_itr;
map_itr = second.erase(tmp_map_itr);
map_itr--;
}
}
return 0;
|
|
都是很好的建议! 值得学习