如何使用STL迭代器和reverse_iterator处理数据
how to manipulate data using STL iterator and reverse_iterator
我正在使用STL在适当的位置反转字符串。通常,我可以使用for循环和I j作为索引,或者直接使用指针。但这次,我想使用STL迭代器。我创建了一个正向迭代器和一个反向迭代器。然而,我似乎无法比较这两个迭代器,错误显示在"iter!=riter"。同时,我也不能使用*iter=*riter。iter是不可变的。
有人能帮我纠正我的代码,让它运行吗?谢谢
vector<char> str_reverse( vector<char> input)
{
vector<char>::const_iterator iter;
vector<char>::reverse_iterator riter;
for(iter = input.begin(), riter = input.rbegin(); iter != riter; iter ++, riter++)
{
char temp = *iter;
*iter = *riter;
*riter = temp;
}
return input;
}
vector<char> str_reverse(vector<char> input)
{
vector<char>::iterator iter, riter;
if (!input.empty())
for(iter = input.begin(), riter = input.end(); iter < --riter; ++iter)
{
char temp = *iter;
*iter = *riter;
*riter = temp;
}
return input;
}
相关文章:
- 警告处理为错误这里有什么问题
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 使用流处理接收到的数据
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 基于多个条件处理地图中的所有元素
- 如何用数字处理log(0)
- SSL上的`curl_easy_send`和`curl_asy_recv`:如何处理`CURLE_AGAIN`
- 错误处理.将系统错误代码映射到泛型
- 从文本文件中读取时钟时间和事件时间并进行处理
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 用于矢量处理的多个线程
- 对字符串进行排序时,在c++中处理sort()
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 处理除以零会导致<csignal>意外行为
- 是否可以在c++中处理字符串流中的各个元素
- 在多个核心中处理一个HTTP请求