读书人

发现一个STL list 很奇怪的有关问题

发布时间: 2012-04-19 14:36:43 作者: rapoo

发现一个STL list 很奇怪的问题。
在STL list中 list.begin() == list.end() 可以用来判断 list 中是否有数据,现在发现了问题。判断的时候 list.begin() == list.end()应该是没有元素,但是list.size 又是大于 0 ,又说明 list中是有元素的。。。
不知道 为什么会出现 这个问题。

[解决办法]
你是什么版本的STL啊??
[解决办法]
http://www.cplusplus.com/reference/
[解决办法]
换其他编译器来使用stl中的东西吧。
[解决办法]

探讨

我是 vc6.0 自带的。而且我也确定 list 中是有数据的。

[解决办法]
仔细看看
[解决办法]
1. 珍惜生命,远离VC6
2. list.begin() == list.end()的判断方法, 奇巧淫技而已,不同的编译器会有不同的实现。
查看list中是否有数据,建议还是用stl::list提供的size接口
[解决办法]
vs中的STL不是最好的,建议使用SGI STL,可是STL之父编写的哦~
[解决办法]
没记错的话vc6的stl好像是有问题的版本,至少也要用2003嘛

读书人网 >C++

热点推荐