繁体   English   中英

如何使用STL迭代器和reverse_iterator操作数据

[英]how to manipulate data using STL iterator and reverse_iterator

我正在使用STL来反转一个字符串。 通常,我可以使用for循环和ij作为索引,或直接使用指针。 但这一次,我想使用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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM