迭代器 iterator:检查容器内元素并遍历元素的数据类型。
各容器都定义了自己的iterator类型,用于访问容器内的元素。即每个容器都定义了一个名为iterator的类型,这种类型支持迭代器的各种操作。
map<char,vector<Msg> >::iterator the;
the变量,它的数据类型是由map <char,vector<Msg> >定义的iterator类型。
每个容器都定义了一个名为begin和end的函数,用于返回迭代器,如果容器中有元素的话,由begin返回的迭代器指向第一个元素。
if(the==rec.end())
the=rec.begin(); //如果容器不为空,则the指向元素rec[0];
由end操作返回的迭代器指向容器的“末端元素的下一个”,它指向了一个不存在的元素。如果容器为空,begin和end返回的迭代器相同。
*the=0;
假设the指向rec的第一个元素,那么*the和rec[0]就是指向同一个元素。
迭代器使用自增操作符向前移动迭代器指向容器下一个元素。逻辑上,迭代器的自增操作和int类型对象的自增操作类似。
end操作返回的迭代器不指向任何元素,因此不能对它进行解引用和自增操作。
各容器都定义了自己的iterator类型,用于访问容器内的元素。即每个容器都定义了一个名为iterator的类型,这种类型支持迭代器的各种操作。
map<char,vector<Msg> >::iterator the;
the变量,它的数据类型是由map <char,vector<Msg> >定义的iterator类型。
每个容器都定义了一个名为begin和end的函数,用于返回迭代器,如果容器中有元素的话,由begin返回的迭代器指向第一个元素。
if(the==rec.end())
the=rec.begin(); //如果容器不为空,则the指向元素rec[0];
由end操作返回的迭代器指向容器的“末端元素的下一个”,它指向了一个不存在的元素。如果容器为空,begin和end返回的迭代器相同。
*the=0;
假设the指向rec的第一个元素,那么*the和rec[0]就是指向同一个元素。
迭代器使用自增操作符向前移动迭代器指向容器下一个元素。逻辑上,迭代器的自增操作和int类型对象的自增操作类似。
end操作返回的迭代器不指向任何元素,因此不能对它进行解引用和自增操作。