易截截图软件、单文件、免安装、纯绿色、仅160KB

关于linux与windows stl map的问题

C/C++ code:
#include <map>
using namespace std;

template<typename K, typename T>
class a
{
public:
map<K,T> _map;
T find(K v)
{
map<K,T>::iterator iter;
iter = _map.find(v);
if(iter != _map.end())
return iter->second;
else
return (T)0;
}
};
int main()
{
a<int, unsigned int> b;
return 0;
}

为什么这段代码在vc2005中可以编译通过,而在linux(red heat)下不能通过?
那是因为int和unsigned int在linux平台下没有区别。
模板的二义性。与编译器实现有关。

去掉a <int, unsigned int> b;这行也一样,与模板参数无关

test.cpp: In member function `T a <K, T>::find(K)':
test.cpp:11: error: expected `;' before "iter"
test.cpp:12: error: `iter' was not declared in this scope

red heat下编译报这个错

呃,google 模板参数依赖类型。
typename的功能没好好学吧。


加上 typename.
如下:

#include <map>
using namespace std;

template <typename K, typename T>
class a
{
public:
    map <K,T> _map;
    T find(K v)
    {
        typename map <K,T>::iterator iter;


相关问答:

关于LINUX操作系统的安装

    我没有安装操作系统的经验,即使是WINDOWS。现在想在LINUX操作系统大环境下学C语言,又要买本本,请问如果操作系统安装不当,会不会对电脑造成什么大的破坏?有没有必要先买一个二手电脑练一下LINUX的 ......

使用Struts2上传文件,在linux下报错

使用Struts2上传文件,在linux下报错
2009-09-29 14:56:20,801 [org.apache.struts2.interceptor.FileUploadInterceptor]-[ERROR] Processing of multipart/form-data request failed. c:/temp/upload__1dcd07ee_12 ......

Linux小问题

Linux不正常关机导致系统坏,请问怎么检查和修复系统?
在刚启动的时候会有提示的。

修复可以靠livecd
或者把基本系统部分重新安装即可

是不是系统编程了read-only的啦?无法往系统写入数据啊?
有的情 ......

java如何控制远程Linux重启

我目前在本地的linux上写了一个swing的界面,想通过这个界面来控制其它电脑的linux重启。
我知道用Runtime.getRuntime().exec("shutdown -r");可以控制本机Linux重启,但是怎么控制远程的linux重启呢? ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号