我有一个std::vector<string>
每个元素都是一个单词的地方。我想打印没有重复单词的矢量!
我在网上搜索了很多,找到了很多材料,但我不能也不想使用哈希映射、迭代器和“高级”(对我而言)的东西。我只能使用纯字符串比较,==
因为我仍然是初学者。
所以,让my_vec
astd::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
维度都会变小,所以我会丢失信息。我怎样才能做到这一点?