#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)时使用。