Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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++ 如何从c+中的一组向量中删除重复向量+;? #包括 #包括 #包括 #包括 使用名称空间std; int main(){ 向量S,P,R; 设置SS; S.推回(9); S.推回(9); S.推回(9); P.推回(656); P.推回(11); P.推回(10); R.推回(10); R.推回(11); R.推回(656); SS.插入(R); SS.插入(S); SS.插入(P); 迭代器itr; 向量::迭代器i; for(itr=SS.begin();itr!=SS.end();itr++){ 对于(i=itr->begin();i!=itr->end();i++){ cout_C++_Arrays_Algorithm_Vector - Fatal编程技术网

C++ 如何从c+中的一组向量中删除重复向量+;? #包括 #包括 #包括 #包括 使用名称空间std; int main(){ 向量S,P,R; 设置SS; S.推回(9); S.推回(9); S.推回(9); P.推回(656); P.推回(11); P.推回(10); R.推回(10); R.推回(11); R.推回(656); SS.插入(R); SS.插入(S); SS.插入(P); 迭代器itr; 向量::迭代器i; for(itr=SS.begin();itr!=SS.end();itr++){ 对于(i=itr->begin();i!=itr->end();i++){ cout

C++ 如何从c+中的一组向量中删除重复向量+;? #包括 #包括 #包括 #包括 使用名称空间std; int main(){ 向量S,P,R; 设置SS; S.推回(9); S.推回(9); S.推回(9); P.推回(656); P.推回(11); P.推回(10); R.推回(10); R.推回(11); R.推回(656); SS.插入(R); SS.插入(S); SS.插入(P); 迭代器itr; 向量::迭代器i; for(itr=SS.begin();itr!=SS.end();itr++){ 对于(i=itr->begin();i!=itr->end();i++){ cout,c++,arrays,algorithm,vector,C++,Arrays,Algorithm,Vector,使用一组多集。多集类似于向量,但经过排序,因此p和R(转换为多集)将相等 [ 2, 2, 2 ] [ 2, 4, 5 ] set-SS; .... SS.insert(多集(R.begin(),R.end()); SS.insert(多集(S.begin(),S.end()); 插入(多集(P.开始(),P.结束()); C不是C++,不要添加无关的标签。关于 SET>代码>?@ PulcMcKeZi。我尝试了在删除它们时设置了一些混乱::迭代器ITR;vector::迭代器i;for(IT

使用一组多集。多集类似于向量,但经过排序,因此p和R(转换为多集)将相等

[ 2, 2, 2 ]
[ 2, 4, 5 ]
set-SS;
....
SS.insert(多集(R.begin(),R.end());
SS.insert(多集(S.begin(),S.end());
插入(多集(P.开始(),P.结束());

C不是C++,不要添加无关的标签。关于<代码> SET>代码>?@ PulcMcKeZi。我尝试了在删除它们时设置了一些混乱::迭代器ITR;vector::迭代器i;for(ITR=SS。{ cout@anujbajpai然后你应该问一个问题来帮助它制作一个@anujbajpai,然后请在原始问题中发布你的显示代码,而不是在评论中。谢谢你的解决方案
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>

using initial_vector = std::vector<int>;
using vector_of_vecs = std::vector<initial_vector>;

template<class...Args>
vector_of_vecs uniqify(Args&&...args)
{
    // build a temporary vector of vectors
    vector_of_vecs result { args... };

    // sort it. std::unique requires the vector to be sorted
    sort(result.begin(), result.end());

    // erase all items that are not unique.
    result.erase(std::unique(result.begin(),
                             result.end()),
                 result.end());

    // return the result
    return result;
}


auto main() -> int
{
    using namespace std;

    vector<int> A, B, C;
    A = {2, 4, 5};
    B = {2, 2, 2};
    C = {2, 4, 5};

    // note: to avoid copies, simply move the vectors into uniquify
    auto uv = uniqify(std::move(A), std::move(B), std::move(C));

    // or preserve the source vectors and force copies if you wish
    //auto uv = uniqify(A, B, C);

    // uv is now a vector of unique vectors.

    // print out our vector of unique vectors
    for(const auto& i : uv){
        cout << '[';
        auto sep = " ";
        for (const auto& j : i) {
            cout << sep << j;
            sep = ", ";
        }
        cout << " ]\n";
    }

    return 0;
}
[ 2, 2, 2 ]
[ 2, 4, 5 ]
set<multiset<int> > SS;
....
SS.insert(multiset(R.begin(), R.end());
SS.insert(multiset(S.begin(), S.end());
SS.insert(multiset(P.begin(), P.end());