C++ 将std::count结果推送到向量中
我想用“T,int”手动创建std::map。我已经将std::set数据复制到clear vector中,因为我希望能够访问唯一元素的元素。下面是一段代码C++ 将std::count结果推送到向量中,c++,c++11,C++,C++11,我想用“T,int”手动创建std::map。我已经将std::set数据复制到clear vector中,因为我希望能够访问唯一元素的元素。下面是一段代码 template<typename T> void foo<T>::function() { std::set<T> unique_set(A.begin(), A.end()); std::copy(unique_set.begin(), unique_set.end(), st
template<typename T>
void foo<T>::function()
{
std::set<T> unique_set(A.begin(), A.end());
std::copy(unique_set.begin(), unique_set.end(), std::inserter(vector_uniq, vector_uniq.begin()));
for (const auto&elem : vector_uniq)
{
counter = std::count(A.begin(), A.end(), elem); // declared in header as unsigned int
}
}
模板
void foo::function()
{
std::set unique_set(A.begin(),A.end());
std::copy(unique_set.begin(),unique_set.end(),std::inserter(vector_uniq,vector_uniq.begin());
用于(常量自动和元素:矢量)
{
counter=std::count(A.begin(),A.end(),elem);//在标头中声明为无符号int
}
}
可以将计数器的值推送到另一个向量吗?然后我会有两个向量的值和它们的出现,这两个向量将在另一个函数中使用。这就是为什么我想要分开的容器。谢谢大家的回复 为计数结果设置第二个向量:
for (const auto&elem : vector_uniq) {
auto counter = std::count(A.begin(), A.end(), elem); // declared in header as unsigned int
vector_count.push_back(counter);
}
不要将
std::inserter
与vector
一起使用。它表现出未定义的行为,因为第一个insert
会使迭代器无效。在这段代码中unique\u set
应该扮演什么角色?您可以填充它,但不使用它做任何事情。@IgorTandetnik那么我如何复制集合容器?将什么复制到其他什么?你的代码很难理解,因为它使用了从未声明过的变量,因此只能猜测它们的类型。我的错误是,我编辑了“复制向量”以设置向量OK,我添加了它。非常感谢:>但是现在我如何通过第二个数字向量迭代呢?因为,如果我使用for(auto&I:vector_count){std::cout而没有看到更多的foo
type/class/struct的声明,很难猜出原因。但是从您的引用来看,这似乎是链接器问题,而不是编译问题。