c++与STL
朝向高处的旅途
0101
展开
-
c++中 sort函数
sort函数的用法做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,转载 2013-07-30 09:36:16 · 696 阅读 · 0 评论 -
scanf_s
ANSI C中没有scanf_s(),只有scanf(),scanf()在读取时不检查边界,所以可能会造成内存泄露。所以vc++2005/2008中提供了scanf_s(),在最新的VS2013中也提供了scanf_s()。在调用时,必须提供一个数字以表明最多读取多少位字符。MSDN中例子:// crt_scanf_s.c// This program uses the s原创 2014-06-03 19:02:40 · 783 阅读 · 0 评论 -
stl priority_queue
priority_queue 优先级队列是一个拥有权值概念的单向队列queue,在这个队列中,所有元素是按优先级排列的(也可以认为queue是个按进入队列的先后做为优先级的优先级队列——先进入队列的元素优先权要高于后进入队列的元素)。在计算机操作系统中,优先级队列的使用是相当频繁的,进线程调度都会用到。在STL的具体实现中,priority_queue也是以别的容器作为底部结构,再根据堆的处理规则原创 2013-11-28 20:24:36 · 515 阅读 · 0 评论 -
STL list
原文地址:http://dozb.bokee.com/1872684.html[文章导读]STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件[正文] 什么是STL呢?STL就是Standard Template Library,标准模板库。这可能是一个历史上最原创 2013-11-24 18:29:37 · 569 阅读 · 0 评论 -
vector
vector ages; ages.reserve(80);//指定容量为80 cout<<"vector的容量为:"<<ages.capacity()<<endl; //向容器中逐个添加元素 ages.push_back(100); ages.push_back(200); ages.push_back(300);原创 2013-11-25 13:18:19 · 585 阅读 · 0 评论 -
STL
常用的一些容器有 链表(list) 栈(stack) 动态数组 (vector) 双端队列(deque) 队列(queue) 映射(map) 在STL中基本容器有: string、vector、list、deque、set、map set和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少原创 2013-11-24 17:47:22 · 475 阅读 · 0 评论 -
stl stack
stack也是程序设计中常常用到的数据容器,STL为我们提供了stack的实现,因此在使用stack时必须包含头文件,并使用统一命名空间。1.声明一个stack stack s1; stack s2;stack模板类需要2个模板参数,一个为元素类型,一个为容器类型,但是只有元素类型是必要的,在容器类型缺省时,默认为deque。2.stack中的操作 stack原创 2013-11-28 19:42:22 · 655 阅读 · 0 评论 -
STL string
http://www.cnblogs.com/wangkangluo1/archive/2011/07/22/2114118.html string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string原创 2013-11-24 18:06:35 · 591 阅读 · 0 评论 -
STL中的set容器的一点总结
C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在STL使用过程中原创 2013-11-24 17:02:33 · 613 阅读 · 0 评论 -
STL 入门
C++:STL标准入门汇总原文地址:http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html第一部分:(参考百度百科) 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Men原创 2013-11-24 18:57:13 · 571 阅读 · 0 评论 -
stl deque
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数原创 2013-11-28 20:06:36 · 524 阅读 · 0 评论 -
二叉查找树(二叉排序树)的详细实现 .
1、序 详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、 查找最大值、查找最小值、查找指定结点的前驱和后继2、二叉查找树简介 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树3、转载 2013-11-24 16:27:31 · 733 阅读 · 0 评论 -
c语言打开文件方式
'r' 只读方式打开,将文件指针指向文件头,如果文件不存在,则File返回空。'r+' 读写方式打开,将文件指针指向文件头,如果文件不存在,则File返回空。 'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'a' 写入方式打开,将文件指针指向文原创 2014-04-17 23:45:21 · 1934 阅读 · 0 评论 -
c语言文件流
copy from http://blog.sina.com.cn/s/blog_6778368b0100vidz.html1 C文件操作在ANSI C中,对文件的操作分为两种方式,即:ü 流式文件操作ü I/O文件操作1.1 流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: 以下是引用片段:typed原创 2014-04-17 23:04:40 · 747 阅读 · 0 评论 -
C++ 标准输出如何控制小数点后位数
因为做题的时候总要控制小数位数,所以就上网找了一下,转载这篇以用来学习。#include #include using namespace std;int main( void ){ const double value = 12.3456789; cout << value << endl; // 默认以6精度,所以输出为 12.3457 cout <<原创 2013-08-10 18:29:28 · 748 阅读 · 0 评论 -
memset用法详解
由于在A题的时候 ,多次被memset坑了 ,特地找到memset详解,加以了解和警示,以后还是用循环初始化吧!!!功 能 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。[编辑本段]用 法 vo原创 2013-08-11 01:47:01 · 777 阅读 · 0 评论 -
C++优先队列的基本使用方法
C++优先队列的基本使用方法 #include#include#includeusing namespace std;struct node{ friend bool operator { return n1.priority 为从大到小排列,">"为从小打到排列 } int priority; int v原创 2013-11-22 22:46:39 · 881 阅读 · 0 评论 -
交换两个值,而不用临时变量
今天复习C语言的时候,看到位运算这章。记得以前学习C语言的时候,都没怎么关注这一章。只是记得几个位运算符,&:按位与,|:按位或,^:按位异或,~:取反,>:右移,知道其中的含义罢了。不过当看完这一章,确实是受益匪浅。尤其是利用”异或“运算,实现交换两个值,而不用临时变量。 通常我们交换两个值,都是用一个临时的变量temp,拿交换a,b的值为例,通常的做法是:temp = a;a转载 2013-12-11 22:28:12 · 581 阅读 · 1 评论 -
TB GB MB KB B BIT
计算机存储信息的大小,最基本的单位是字节,一个汉字由两个字节组成,字母和数字由一个字节组成。容量的单位从小到大依次是:字节(B)、KB、MB、GB、TB。它们之间的关系是。1TB=1024GB1GB=1024MB1MB=1024KB1KB=1024字节通常人们都使用简便的叫法,把后面的“B”去掉,所以你问的1GB就是1024MB。以上是根据教科书给出的答转载 2013-12-16 10:50:18 · 1094 阅读 · 0 评论 -
c++文件流
前两节介绍了C++的IO流类库,标准设备IO操作流中部分预定义流对象的成员函数以及IO格式控制。那今天我将继续介绍关于C++中的流操作内容——文件IO操作流fstream。并会着重讲解C++是如何对文件进行操作的。 文件指存放在外部介质上的数据的集合。大家都知道操作系统是以文件为单位来对数据进行管理的。因此如果你要查找外部介质的数据,则先要按文件名找到指定文件,然后再从文件中读取数据,如果要转载 2013-12-24 11:10:04 · 910 阅读 · 0 评论 -
c++ cin输入格式
cin+hex:C++的输入格式希望从键盘把一个16进制数据串输入到一个unsigned char型数组中,可怎么也搞不定。千寻万找,才明白,进制控制只适用于整型变量,不适用于实型和字符型变量,这不仅涉及到cin,也涉及到cout……下面是在网上找到的教程,居然是东大的!http://edept.seu.edu.cn/Extend/CLanguage/courses/JcnrCh01-转载 2014-03-10 21:59:57 · 4188 阅读 · 0 评论 -
c++ 64位二进制 移位运算并输出结果
一个很一般的程序#includeusing namespace std;void main(){int a,b,p;coutcin>>hex>>a>>b;coutcout.width(8); //宽度是8cout.fill('0');//前面补0cout coutcout p=b&0X80000000;//cout //cou原创 2014-03-10 22:11:43 · 2830 阅读 · 0 评论 -
c c++ 产生随机数
C/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。例如:#includ转载 2014-03-29 11:25:40 · 727 阅读 · 0 评论 -
C++问题Point& Element(int n) { return points[n]; }
C++问题Point& Element(int n) { return points[n]; } #includeusing namespace std;class Point{public: Point() { X=Y=0; cout } Point(int xx,intyy) { X=x原创 2014-03-21 14:55:32 · 1932 阅读 · 1 评论 -
Dev-C++非官方中文入门教程 收藏
Dev-C++非官方中文入门教程 收藏 Dev-C++非官方中文入门教程前言本教程仅仅是为了C语言入门者(暂时不涉及C++),并且假设我的读者只有中学文化。我将近可能少用术语,让你轻松理解。C很灵活,有时候用A、B两种方法都可达到目的,但我要告诉你用A方法的好处,用B方法的坏处。与我的读者一起共勉!导读1、什么是 Dev-C++?它是C程序的可视化集成编译环境(IDE)原创 2014-03-21 15:40:29 · 1559 阅读 · 0 评论 -
cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>cl /?用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 16.00.30319.01 版版权所有(C) Microsoft Corporation。保留所有权利。 C/C++ 编译器选项原创 2016-01-29 23:36:44 · 1094 阅读 · 0 评论