我用iterator犯的一个错误
来源:互联网 发布:怎样在淘宝网买东西 编辑:程序博客网 时间:2024/04/19 13:43
昨天去一家公司上机测试,以前老是看一些STL的书籍,没有直接用来做过任何东西。所以一下子出丑了。
这样一个问题:
#include <vector>
#include <iostream>
void printArr(const std::<int>& a)
{
for(std::vector<int>::iterator it = a.begin(); it != a.end(); it++)
std::cout << a[it] << std::endl;
}
这段程序死活编译不过去,无奈有时间限制,我就改成了以下方法
#include <vector>
#include <iostream>
void printArr(const std::<int>& a)
{
for(int i = 0; i < a.size(); i++)
std::cout << a[i] << std::endl;
}
编译通过。但是实在是心里不爽,毕竟自己对这个东西没有很好的理解和使用。、
第一段代码犯了两个错误:
第一:作为const类型的参数a,要想遍历a需要适用const_iterator;
第二:做为iterator,要访问它的数值用法是*it,而不是a[it]。
所以正确的方法是:
#include <vector>
#include <iostream>
void printArr(const std::<int>& a)
{
for(std::vector<int>::const_iterator it = a.begin(); it != a.end(); it++)
std::cout << *it << std::endl;
}
- 我用iterator犯的一个错误
- 我犯了一个低级的C++的逻辑错误
- 用C++模板,我犯了一个错误
- 我所犯的错误
- 我常犯的错误
- 我犯的低级错误
- JAVA 我已经犯的错误
- 布局相关我犯的错误
- 我犯过的错误-代码易错点
- 我编程中常犯的错误
- 我常犯的几个小错误
- 那些年,我犯的低级错误
- 用MasterPage是犯的一个小错误
- 我犯的的一个注册表(串口的)雷人低级错误
- 今天我被震惊了,vc2005居然犯这么一个低级的错误
- 下面是我犯的一个错误,与大家共享教训
- mysql插入中文乱码,我犯了一个很弱智的错误
- 犯了一个Hibernate的低级错误
- 获取屏幕布尺寸
- 如何为winform程序打包(图解)
- SMS调用系统的浏览视图
- MyEclipse中DB Browser连接SQL Server2005问题排查
- MyEclipse6.0与jdk版本问题
- 我用iterator犯的一个错误
- 行列互转_整理贴
- Windows2003服务器的安全配置终极技巧
- ie6中PNG透明效果的出现
- css显示gridview滚动条
- insert into Permission_Modle_Role_Right select ModuleId,rightid,roleid,[desc] from tmp
- VI - The Interface
- 软件架构师书籍列表(转自:江南白衣)
- align="absmiddle"成员名称 说明