首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在整数向量集中进行搜索

如何在整数向量集中进行搜索
EN

Stack Overflow用户
提问于 2019-05-06 10:57:29
回答 1查看 78关注 0票数 0

我试图形成一个整数向量的集合,在检查集合中是否已经存在相同的解时,我得不到正确的答案。

这是关于C++11的,我之前也发过类似的问题,但是没有得到任何有意义的回复。为什么每当我们形成一张地图或一组向量时,is不能识别我插入的向量是否与我已经插入的向量相同?几个月以来,我一直在寻找答案。此外,由于在Java等其他语言中也允许这种行为,因此必须解决此问题。如果有人能指出为什么这个行为不像我期望的那样工作,以及这个问题的可能解决方案是什么,那就太好了。

下面的代码是Leetcode上3Sum问题的解决方案,但由于我上面解释的原因,它不起作用。

代码语言:javascript
代码运行次数:0
运行
复制
vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>>result;
        unordered_map<int,int>m;
        set<vector<int>>res;
        bool flag=false;

        if(nums.size()<=2)
            return result;
        vector<int>temp;

        for(int i=0;i<nums.size()-1;i++)
        {
            int comp=-(nums[i]+nums[i+1]);
            if(m.find(comp)!=m.end())
            {
                auto location=m.find(comp);
                temp.push_back(comp);
                temp.push_back(nums[i]);
                temp.push_back(nums[i+1]);

                if(res.find(temp)==res.end())
                 {
                    res.insert(temp);
                    result.push_back(temp);
                 }

                temp.clear();
            }

            else
            {
                m[nums[i]]=i+1;
                m[nums[i+1]]=i+2;
            }
        }
        return result;
    }

在输入为0,0,0,0时,答案应该是: 0,0,0,而我得到的是:[0,0,0,0,0,0,0]

EN

回答 1

Stack Overflow用户

发布于 2019-05-06 11:25:37

您可以在集合中使用元组而不是向量。

代码语言:javascript
代码运行次数:0
运行
复制
#include <tuple>
#include <set>
#include <iostream>

using std::get;

int main(int argc, char* argv[]) {
    std::set<std::tuple<int,int,int>> sums;

    auto tup1 = std::make_tuple(0, 0, 0);
    sums.insert(tup1);
    auto tup2 = std::make_tuple(0,0,0);
    sums.insert(tup2);
    std::cout << sums.size() << std::endl;
    for (auto& item : sums) {
        std::cout << "(" << get<0>(item) << "," << get<1>(item) << "," << get<2>(item) << ")\n";
    }
    return 0;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55998269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档