小编Dan*_*anz的帖子

C++迭代迭代器

我目前正在"现代化"我的玩具编译器代码,以尽可能多地使用C++ 11功能来学习如何编写现代C++.在查看我的代码,搜索现代化的东西时,我发现了这个构造:

for (size_t i = 0; i < _vector.size(); i++) {
   for (size_t j = 0; j < _vector[i].length(); j++) {
Run Code Online (Sandbox Code Playgroud)

_vector是一个std::vector<std::string>包含需要编译的文件的源代码.std::string向量中的每一个都是需要编译的一行代码.在编译之前,编译器会检查要编译的代码是否有任何语法错误,此检查的第一步是查找缺少的分号.我这样做是通过逐个查看每个字符并检查所述字符是否是分号.如果是,我通过构建一种迷你语法树来检查是否需要分号,从而确定是否有必要.我目前访问每个角色_vector[i][j]这非常让人联想到ANSI-C(这是你如何访问char*数组中的每个字符),我想用迭代器替换它.据我所知,Iterator是一个类似指针的构造,它指向容器/序列/中的元素.应用指针类比我推断出std::vector<std::string>::iterator指向向量中的字符串,因此理论上std::vector<std::string>::iterator::iterator指向字符串对象中的单个字符.但是因为在STL中没有这样的东西,指针类比在这里没什么用处.所以我的问题是:如何访问每个角色std::vector<std::string>::iterator

c++ stl vector c++11

-1
推荐指数
1
解决办法
6603
查看次数

标签 统计

c++ ×1

c++11 ×1

stl ×1

vector ×1