随机整数集的向量

时间:2016-02-09 09:05:28

标签: random vector integer set

我试图编写一个小程序来创建随机整数集的向量,但问题是一旦创建了第一个集合,程序就会在后续迭代中保存相同的数字集。任何帮助解释或纠正这个问题将非常感谢。谢谢!

#include<iostream>
#include<cstdlib>
#include<ctime>
#include<set>
#include<vector>
using namespace std;
typedef set<int> Set_I;
typedef set<int>::iterator It;
typedef vector<set<int> > vec_Set;


int random();
void print_set(Set_I s);
void print_vec(vec_Set v);

int main()
{   
    srand(time(0));

    Set_I s;
    vec_Set v;
    v.resize(4);
    for(int i=0; i<4;i++)
    {

        //cout << s.size() << " " <<endl;
        while(s.size()<6)
        {
            s.insert(random());

        }

        v[i] = s;
        s.empty();


    }
    //print_set(s);
    print_vec(v);

    cout << endl << s.size() <<endl << v.size();
    system("PAUSE");
}

int random()
{
    int r = 1 + rand()%49;
    return r;
}

void print_set(Set_I s)
{
    for(It it=s.begin(); it!=s.end(); it++)
        {
            cout << *it << " ";
        }
        cout << endl;
}

void print_vec(vec_Set v)
{
        for(int i=0;i<v.size();i++)
        {
            cout << "{ ";
            for(It j = v[i].begin() ; j != v[i].end() ;j++)
            {
                cout << *j << " ";
            }
            cout <<"}";
            cout <<endl;
        }
}

1 个答案:

答案 0 :(得分:0)

s.empty()返回一个bool,声明该集合为空。它对集合的成员没有影响!!

你必须使用 s.clear()来清空(清除)你的设置。

相关问题