【问题标题】:Can We Replace value of vector element using Iterator?我们可以使用迭代器替换向量元素的值吗?
【发布时间】:2016-09-18 05:15:34
【问题描述】:

迭代器实际上是如何在向量中工作的。如果我们需要替换向量中的数据元素,我们可以通过迭代器进行还是需要其他类型的实现来这样做?

以下是我上面查询的代码

#include <bits/stdc++.h>
using namespace std;
vector <string> v;
vector <string> :: iterator it;
int main()
{
    int t,l,i;
    cin >> t;
    for(i=0;i<t;i++){
        string s;
        cin >> s;
        v.push_back(s);
    }
    string s2="replaceable String";
    //Now I want to change some string at index i in vector v to string s2
    for(it=v.begin();it!=v.end();it++){
        cout << *it << endl;
    }
    return 0;
}

【问题讨论】:

  • 如果您对某些导致该错误的代码没有明确的错误,请不要在此站点上发布
  • 换句话说,先尝试一下。如果您遇到错误,请尝试寻找遇到该错误的其他人。如果您自己研究后仍无法弄清楚,请发布您的问题、代码以及您尝试过的内容,以便我们帮助您解决错误。
  • 是的,您可以通过迭代器修改元素。
  • 假设 it 是有效的迭代器,您可以像这样更改指向它的值:*it = 123
  • 我现在已经发布了我的代码和问题。

标签: c++ vector stl iterator


【解决方案1】:

迭代器用于指向 slots 或向量中的位置。

std::vector 的迭代器遵循Random Interators 的概念。

您可以将迭代器分配给向量的开头。

您可以为std::find 的结果分配一个迭代器。

你可以增加一个迭代器。

您可以通过取消引用交互器来访问数组中的元素。

你还需要什么?

【讨论】:

  • 我想替换容器的特定索引中包含的值。我们可以通过迭代器来做到这一点吗?
猜你喜欢
  • 1970-01-01
  • 2011-01-03
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 2013-09-04
  • 1970-01-01
相关资源
最近更新 更多