C++ C+中的向量数组+;

C++ C+中的向量数组+;,c++,arrays,vector,C++,Arrays,Vector,如果向量由这些数字组成,我怎么可能打印出重复多次的数字,所以基本上它应该打印:55,1,23,45这样做 int sample[]= {55,55,55,55,1,23,45}; std::set<int> myset(sample, sample + sizeof(myset)); for(set<int>::iterator iter=myset.begin(); iter!=myset.end();++iter) cout<<(*iter)<<

如果向量由这些数字组成,我怎么可能打印出重复多次的数字,所以基本上它应该打印:
55,1,23,45
这样做

int sample[]= {55,55,55,55,1,23,45};
std::set<int> myset(sample, sample + sizeof(myset));
for(set<int>::iterator iter=myset.begin(); iter!=myset.end();++iter) cout<<(*iter)<<endl;
return 0;
int sample[]={55,55,55,55,1,23,45};
std::设置myset(sample,sample+sizeof(myset));

对于(set::iterator iter=myset.begin();iter!=myset.end();++iter)cout,如注释所示,可以使用
std::unordered\u集
std::set

#include <unordered_set>
#include <vector>
#include <iostream>

int main()
{
   std::unordered_set<int> tempSet;
   std::vector<int> vec { 55, 55, 55, 1, 23, 45 };
   for ( auto& val : vec )
   {
      if (!tempSet.count(val)) 
         std::cout << val << " "; 
      tempSet.insert(val); 
   }
}
但是我把它放在了
if()
之外,以证明
集合不会存储重复项,即使您试图存储它们。

基本上

vector <int> b;
b.push_back(55);
b.push_back(55);
b.push_back(55);
b.push_back(25);
b.push_back(23);
b.push_back(2);
set <int> a;
for (auto it : b) a.insert(it);
for (auto it : a)
cout << it;
向量b;
b、 推回(55);
b、 推回(55);
b、 推回(55);
b、 推回(25);
b、 推回(23);
b、 推回(2);
设置一个;
对于(自动it:b)a.插入(it);
用于(自动it:a)

无法将所有内容添加到
std::set
(不允许重复),然后打印该内容。@CoryKramer没有任何std::set经验,请您进一步解释。非常感谢!,请务必阅读。重复次数超过1=55的成员仅限否?
sample+sizeof(myset)
您确定吗?谢谢,它成功了!不太清楚它是怎么工作的。。。不过还是谢谢你。@BenjaminKljuno你还不确定什么?我将对此进行解释,但代码非常简单。仅当值不在集合中时才输出该值。谢谢。我不知道为什么我的问题会受到负面影响,但感谢大家的评论,我现在明白了。虽然这段代码可能会回答这个问题,但提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
vector <int> b;
b.push_back(55);
b.push_back(55);
b.push_back(55);
b.push_back(25);
b.push_back(23);
b.push_back(2);
set <int> a;
for (auto it : b) a.insert(it);
for (auto it : a)
cout << it;