如何将迭代器的地址归因于迭代器?

时间:2019-03-05 11:18:09

标签: c++ c++11

我想将迭代器的另外一个+1的归因赋给迭代器,然后将其放入字符串向量中。这是我的代码:

'    for(auto it:cuvinte)
    {
        int nr=1;
        incercare.clear();
        incercare.push_back(it);
        for(auto i2:cuvinte)
        {
            if(incercare.back()[incercare.back().size()-1]==i2[0])
            {
                ++nr;
                incercare.push_back(i2);
            }
            if(nr>maxim)
                {
                    maxim=nr;
                    solutie=incercare;
                }

        }'

我想让i2的ad + 1进入向量的右边。请帮助我。

2 个答案:

答案 0 :(得分:0)

所以这是上面的代码,重写为使用迭代器而不是基于范围的for循环。恐怕我还是不明白你想做出什么改变。

for (auto it = cuvinte.begin(); it != cuvinte.end(); ++it)
{
    int nr = 1;
    incercare.clear();
    incercare.push_back(*it);
    for (auto i2 = cuvinte.begin(); i2 != cuvinte.end(); ++i2)
    {
        if (incercare.back()[incercare.back().size()-1] == (*i2)[0])
        {
            ++nr;
            incercare.push_back(*i2);
        }
        if (nr > maxim)
        {
            maxim = nr;
            solutie = incercare;
        }
    }
}

答案 1 :(得分:0)

以下代码可以完成工作。刚刚更改了innerloop的起点。

for (auto it = cuvinte.begin(); it != cuvinte.end(); ++it)
{
    int nr = 1;
    incercare.clear();
    incercare.push_back(*it);
    for (auto i2 = it+1; i2 != cuvinte.end(); ++i2)
    {
        if (incercare.back()[incercare.back().size()-1] == (*i2)[0])
        {
            ++nr;
            incercare.push_back(*i2);
        }
        if (nr > maxim)
        {
            maxim = nr;
            solutie = incercare;
        }
    }
}