微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将二维向量转换为一组向量?

如何解决如何将二维向量转换为一组向量?

我想将一个二维向量存储在一组向量中。 就像我有一个这样的二维向量:

vector v = {{0,5},{1,2},{0,3}}; 我想要一组不再存在那些重复向量的向量。 set s = {{0,3}};

我试过这样做,但它不起作用:

int main() {
    vector<vector<int>> vect = {{0,3}};

    set<vector<int>> s;

    for(vector<int> temp : vect) {
        s.insert( temp.begin(),temp.end());
    }

    
    display(s);
    return 0;
}

请帮我怎么做?

解决方法

您的错误在这里:

for(vector<int> temp : vect) {
    s.insert( temp.begin(),temp.end());
}

您的意思是将每个向量插入到集合中。但是相反,您将一系列整数(向量的内容)插入到集合中,并且由于集合包含向量,我认为这将调用 vector(size_t size) 构造函数,它创建一个 size 元素的空向量每次。

相反,试试这个:

s.insert(vect.begin(),vect.end());

这将插入所有向量。然后您可以简化为:

set<vector<int>> s(vect.begin(),vect.end());

s 的初始构造过程中执行相同的操作,而不需要第二步。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。