类似于寻找数组中元素出现个数

毕设工坊 论文问答 1

有一组数组a,比如说1 1 2 3 4 4 5 5,进行循环,数组b是空的 如果过程中a中元素在数组b中没出现过,计数加一,这个元素存入数组b中,就这样循环一下,得出的数组b是1 2 3 4 5,计数为5。就像这个思路用代码呈现出来。

回复

共2条回复 我来回复
  • 毕设向导
    这个人很懒,什么都没有留下~
    评论

    其实如果用vector的话完全不用计数的,毕竟用vector.size()多方便

    #include<iostream>
    using namespace std;
    #include<vector>
    int main()
    {
        int a[] = { 1,1,2,3,4,4,5,5 };
        int counter = 0;
        int size = sizeof(a) / 4;
        vector<int> b;
        for (int i = 0; i < size; i++)
        {
            if (count(b.begin(), b.end(), a[i])==0)
            {
                b.push_back(a[i]);
                counter += 1;
            }
        }
        for (int i = 0; i < b.size(); i++)
        {
            cout << b[i];
        }cout <<endl<< "counter=" << counter;
    }
    

    0条评论
  • 毕设港湾
    这个人很懒,什么都没有留下~
    评论

    嘿嘿,这样怎么样

    template<typename Type>
    void func(const std::vector<Type>& a, std::vector<Type>& b)
    {
        std::unordered_set<Type>s;
        for (const Type& value : a)
        {
            s.insert(value);
        }
        b.resize(s.size());
        std::copy(s.begin(), s.end(), b.begin());
    }
    
    0条评论

发表回复

登录后才能评论