出于某种原因,当我在程序中将变量定义为“uint”而不是“unsigned int”时,它会出错.这看起来很奇怪,因为uint的typedef为:
typedef unsigned int uint;
……所以我认为我可以互换地使用这两个.更确切地说,我正在分配一个函数的结果,该函数将“unsigned int”返回到一个uint变量中
在向量调整大小调用中使用该uint …此时它出错.即,我的代码看起来像这样:
unsigned int getUInt() { return 3; } int main(void) { vector<vector<float> > vectVect(100000); for(uint i = 0; i < vectVect.size(); ++i) { vector<float>& myVect = vectVect[i]; uint myUnsignedInt = getUInt(); myVect.resize(myUnsignedInt); } cout << "finished" << endl; }
…它出错的行是myVect.resize行.
显然,我已经有了一个解决方案,但我想了解为什么会发生这种情况,因为我非常困惑.有人有主意吗?
PS – 如果有人认为它可能很重要,我在fedora 15上使用gcc v4.1.2 …而定义uint的include文件是/usr/include/sys/types.h.
解决方法
原文地址:https://www.jb51.cc/c/118489.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。