小编Vef*_*hug的帖子

如何在 C++ 中的字符串向量中找到重复的单词?

我有一个std::vector<string>每个元素都是一个单词的地方。我想打印没有重复单词的矢量!

我在网上搜索了很多,找到了很多材料,但我不能也不想使用哈希映射、迭代器和“高级”(对我而言)的东西。我只能使用纯字符串比较,==因为我仍然是初学者。

所以,让my_vecastd::vector<std::string>从 std 输入初始化。我的想法是读取所有向量并在找到后删除任何重复的单词:

  for(int i=0;i<my_vec.size();++i){
    for (int j=i+1;j<my_vec.size();++j){
      if(my_vec[i]==my_vec[j]){
        my_vec.erase(my_vec.begin()+j); //remove the component from the vector
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

我试图测试 std::vector<std::string> my_vec{"hey","how","are","you","fine","and","you","fine"}

确实我发现

嘿,你好吗?

所以它似乎是对的,但例如,如果我写了简单的向量 std::vector<std::string> my_vec{"hello","hello","hello","hello","hello"}

我得到

你好你好

问题是每次调用erase维度都会变小,所以我会丢失信息。我怎样才能做到这一点?

c++ string vector

4
推荐指数
1
解决办法
335
查看次数

标签 统计

c++ ×1

string ×1

vector ×1