STL 库函数测试

学习:

1.深入理解了C++里引用:

A:引用的定义:数据类型名 &引用名=变量名;(引用不同于指针之处是:引用在声明的时候必须同时初始化)

B.引用只是变量的一个别名,在操作引用和操作原变量名的时候都是操作内存区域上的同一个区域。

C.引用的应用:

a.作为函数的参数参与传值,类似于c语言指针的作用。这里才明C语言中指针传值的优点:相对于通过形参传值,c指针是直接访问需要做变化的内存,并直接对齐做改,

而不是复制一份到目前开的函数栈中来。

b.引用作为函数返回值,也是为了避免复制产生临时变量而效率降低。函数返回值返回的引用的原变量不能是局部变量,那样会产生野引用的情况。

2.其余学习内容见代码注解:

我的代码:

#include<iostream>
#include<algorithm>
#include<vector>
#include<cassert>    //assert
#include<ctime>
#include<cstdlib>     //rand(),srand()
using namespace std;

void rand_make(vector<int> &v){    //一个容器的引用
     for(int i=0;i < 100;i++){
         int x=((double)(rand())/RAND_MAX)*1000000;    //取随机数。因为随机数函数rand()的最大随机数值可能只有2^15-1,所以用这种方法来取随机数
         v.push_back(x);
     }
}

int main(void){
    srand(time(0));    //一个程序只需要给一次种子<span id="transmark"></span>
    vector<int> v;
    rand_make(v);
    sort(v.begin(),v.end());
    for(int i=0;i < v.size()-1;i++) assert(v[i] < v[i+1]);    //assert(expresiion);
    cout << endl << RAND_MAX << endl;
}

时间: 2024-12-06 19:29:42

STL 库函数测试的相关文章

C++中STL库函数的基本运用

学了这么长时间的STL库,现在我觉得是有必要对过去的题目和所遇到的问题做一下整理了,以便于之后更好的展开练习: 一. 为什么要用STL库? 1.简单粗暴(省事). 2.便于解决复杂的问题(在贪心题目中显而易见). 3.使其思路更加广泛,解决问题的角度更多. 二. 怎么用STL库? 1.设身处地的利用某个函数的特点进行解决问题.(下面会进行介绍各个函数的特点) 2.做好第一点就足够了. 三. 各个函数的特点以及适合解决哪些问题? 1. vector: vector的强大之处就在于可以通过它完成建立

c语言库函数测试

1.函数名: abort功  能: 异常终止一个进程用  法: void abort(void);程序例: 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(void) 4 { 5 printf("Calling abort()\n"); 6 abort(); 7 printf("hello\n"); /* This is never reached */ 8 } 结果:abort后面

初识STL 剖析list部分源码

1.STL    库函数的设计第一位是通用性,模板为其提供了可能:标准模板库中的所有算法和容器都是通过模板实现的.  STL(标准模板库)是 C++最有特色,最实用的部分之一. STL整个架构模型如下: 2.list(双向循环链表) 调用STL系统的#include<list>,用系统的双向循环链表结构处理: #include<iostream> #include<list> //调用系统的list,双向循环链表结构 using namespace std; int m

STL容器及常用算法

1. vector vector<int>iv(2,9); iv.size(); iv.push_back(1); iv.pop_back(); vector<int>::iteratorivite=find(iv.begin(),iv.end(),1);  //STLfind()函数 iv.erase(ivite); iv.insert(ivite,3,7); iv.clear(); 2. list list<int>ilist; ilist.size(); ilis

排序算法—快速排序

首先快速排序,数据结构学完之后,把一些排序只是懂思想,一直没有实现,今天花时间实现了一下 快速排序的思想就是每次从一段中随机选一个数,把这一段中比它小的元素放在这个元素的前面,比它大的放在其的后面,然后运用分治的思想,在分别对以当前元素分开的两端分别进行这样的操作,递归即可,因为每次选择一个数是随机的,所以不太稳定,但是综合下来速度还是令人满意的 在hdoj上面测试了一下,和调用STL库函数的效率基本一样.还是很令人满意的 其实现代码: #include <iostream> #include

Uva140 Bandwidth 全排列+生成测试法+剪枝

参考过仰望高端玩家的小清新的代码... 思路:1.按字典序对输入的字符串抽取字符,id[字母]=编号,id[编号]=字母,形成双射       2.邻接表用两个vector存储,存储相邻关系       3.先尝试字母编号字典序最小的排列,此为next_permutation的最上排列       4.在最理想的情况下都不能得到比当前最优解更好的方案,则应当剪枝(prune)       5.memcpy(),strchr()方法来自于库函数 测试集: Input:      A:FB;B:GC

【LeetCode】031. Next Permutation

题目: Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending order). The repla

C++ Primer第四版 15.9 再谈文本查询 程序实现

编程过程中发现书本中的示例程序并不完全,某些地方存在错误,现已改正并添加少许注释.. 1 #include<iostream> 2 #include<fstream> 3 #include<sstream> 4 #include<vector> 5 #include<map> 6 #include<set> 7 #include<algorithm> 8 #include<stdexcept> 9 using

linux创建静态库

[1]新建源程序staticlib.c 1 /************************************************************************* 2 > File Name: staticlib.c 3 > Author: copener 4 > Mail: [email protected] 5 > Created Time: 2015年05月13日 星期三 17时08分11秒 6 *************************