Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将std::count结果推送到向量中_C++_C++11 - Fatal编程技术网

C++ 将std::count结果推送到向量中

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

我想用“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(), 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的声明,很难猜出原因。但是从您的引用来看,这似乎是链接器问题,而不是编译问题。