rand()和srand()使用

#include<stdio.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<assert.h>
#include<cstdlib>
#include<ctime>
using namespace std;

void vector_fill(vector<int>& v , int cnt){            //传入vector参数时的语法是怎样的?
        v.clear();
        for(int i = 0 ; i<cnt ; i++){
             v.push_back(rand());
        }
}

void sort_test(vector<int>& v){
       sort( v.begin() , v.end() );
       for(int i = 0; i<v.size()-1; i++)
            assert( v[i] <=  v[i+1] );
}

int main(){
     vector<int> v;
     int n;
     vector_fill(v,1000);
     sort_test(v);
     return 0;
}

      问题:
               1.rand()函数生成随机数每一次编译运行生成的值一样?
                  如果不加入srand(time(NULL)) (srand头文件为<cstdlib>, time的头文件为<time.h>)
                  则无论编译多少此,则每次生成的都为同一套随机数种子。

               2.srand()函数的作用是什么?
                  srand()函数的作用是初始化随机数种子,如果不调用srand(),那么使用rand()函数时,是
                  默认开头调用了一次srand(1),则随机数种子就是1。

               3.assert()函数改怎样使用?
                  assert是一个宏定义,在#include<assert.h>的头文件下,调用时语法为assert(表达式),
                  如果表达式为假,则返回一个错误提示。
                  !!注意,asset()只能在调试(debug)时使用。

猜你喜欢

转载自blog.csdn.net/m0_37632283/article/details/81533258
今日推荐