随笔分类 -  C++ STL

1 2 下一页
set
摘要:转自:http://www.cnblogs.com/graphics/archive/2010/06/01/1749569.html简介set是一种随机存储的关联式容器,其关键词(key)和元素(value)是同一个值。set之中所有元素互不相同。set是通过二叉查找树来实现的。创建创建一个空的set 1: set s0 ;创建一个带大于比较器的set, 默认是小于比较器less 1: set> s1 ;用数组初始化一个set 1: int a[3] = {1, 2, 3} ; 2: set s2(a, a + 3) ;用拷贝构造函数初始化set 1: set s1 ; 2: se... 阅读全文
posted @ 2013-09-11 11:36 猿人谷 阅读(713) 评论(0) 推荐(0) 编辑
容器set和multiset
摘要:一、set和multiset基础set和multiset会根据特定的排序准则,自动将元素进行排序。不同的是后者允许元素重复而前者不允许。需要包含头文件:#include set和multiset都是定义在std空间里的类模板:[cpp] view plaincopyprint?template,class_Alloc=allocator>classsettemplate, class _Alloc = allocator >class set[cpp] view plaincopyprint?template,class_Alloc=allocator>classmultis 阅读全文
posted @ 2013-09-11 11:01 猿人谷 阅读(704) 评论(0) 推荐(0) 编辑
C++ STL算法系列6---copy函数
摘要:现在我们来看看变易算法。所谓变易算法(Mutatingalgorithms)就是一组能够修改容器元素数据的模板函数,可进行序列数据的复制,变换等。我们现在来看看第一个变易算法:元素复制算法copy。该算法主要用于容器之间元素的拷贝,即将迭代器区间[first,last)的元素复制到由复制目 标result给定的区间[result,result+(last-first))中。下面我们来看看它的函数原型:1 template 2 OutputIterator copy( 3 InputIterator _First, 4 Inp... 阅读全文
posted @ 2013-08-17 21:19 猿人谷 阅读(22835) 评论(0) 推荐(1) 编辑
C++ STL算法系列5---equal() , mismatch()
摘要:equal和mismatch算法的功能是比较容器中的两个区间内的元素。这两个算法各有3个参数first1,last1和first2.如果对 于区间[first1,last1)内所有的first1+i,first1+i和first2所在位置处的元素都相等,则equal算法返回真,否则返 回假。mismatch算法的返回值是由两个迭代器first1+i和first2+i组成的一个pair,表示第1对不相等的元素的位置。如果没有找到 不相等的元素,则返回last1和first2+(last1-first1)。因此,语句equal(first1,last1,first2)和mismatch(first 阅读全文
posted @ 2013-08-17 17:04 猿人谷 阅读(3039) 评论(0) 推荐(0) 编辑
C++ STL知识点小结
摘要:1.capacity(容量)与size(长度)的区别。size(长度)指容器当前拥有的元素个数。capacity(容量)指容器在必须分配新存储空间之前可以存储的元素总数。 阅读全文
posted @ 2013-08-17 16:41 猿人谷 阅读(680) 评论(0) 推荐(0) 编辑
C++ STL编程轻松入门基础
摘要:C++ STL编程轻松入门基础1 初识STL:解答一些疑问1.1 一个最关心的问题:什么是STL1.2 追根溯源:STL的历史1.3 千丝万缕的联系1.4 STL的不同实现版本2 牛刀小试:且看一个简单例程2.1 引子2.2 例程实作2.3 历史的评价2.4 如何运行作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心 并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。1 初识STL:解答一些疑问1.1 一个最关心的问题:什么是STL&q 阅读全文
posted @ 2013-08-17 15:27 猿人谷 阅读(1563) 评论(0) 推荐(0) 编辑
C++ STL疑惑知识点
摘要:1.remove的问题用法参考:http://www.cnblogs.com/heyonggang/p/3263568.html参考:http://zhidao.baidu.com/question/458494170.html2.用find搜索数组中是否存在某个值参考:http://www.cnblogs.com/heyonggang/p/3241789.html由于指针的行为与作用在内置数组上的迭代器一样,因此也可以使用find来搜索数组:1 int ia[6] = {27 , 210 , 12 , 47 , 109 , 83};2 int search_value = 83;3 int 阅读全文
posted @ 2013-08-17 15:08 猿人谷 阅读(580) 评论(0) 推荐(0) 编辑
size_type、size_t、differentce_type以及ptrdiff_t
摘要:目录(?)[-]size_typesize_tdifferent_typeptrdiff_tsize_t是unsigned类型,用于指明数组长度或下标,它必须是一个正数,std::size_tptrdiff_t是signed类型,用于存放同一数组中两个指针之间的差距,它可以使负数,std::ptrdiff_t.size_type是unsigned类型,表示容器中元素长度或者下标,vector::size_type i = 0;difference_type是signed类型,表示迭代器差距,vector:: difference_type = iter1-iter2.前二者位于标准类库std内 阅读全文
posted @ 2013-08-17 14:58 猿人谷 阅读(1299) 评论(0) 推荐(0) 编辑
题目1003:A+B ---c_str(),atoi()函数的使用;remove , erase函数的使用
摘要:1 #include 2 #include 3 int sw(char *a){ 4 int i=0,c=0; 5 while(a[i]){ 6 if(a[i]>='0'&&a[i] 2 #include 3 #include 4 using namespace std; 5 int main(){ 6 //freopen("a.txt","r",stdin); 7 char inA[20]={0}; 8 char inB[20]={0}; 9 while(cin>... 阅读全文
posted @ 2013-08-17 14:15 猿人谷 阅读(1185) 评论(0) 推荐(0) 编辑
字符串中符号的替换---replace的用法
摘要:1 #include 2 #include 3 4 using namespace std; 5 6 int main() 7 { 8 string s1 = "one*two*three";//Given String 9 string s2 = "*";//delimeter10 string s3 = ",";//string to replace11 12 cout ::iterator IterF0, IterL0; IterF0 = s.begin ( ); IterL0 = s.b... 阅读全文
posted @ 2013-08-17 11:06 猿人谷 阅读(7367) 评论(0) 推荐(0) 编辑
A+B for Matrices 及 C++ transform的用法
摘要:题目大意:给定两个矩阵,矩阵的最大大小是M*N(小于等于10),矩阵元素的值的绝对值小于等于100,求矩阵相加后全0的行以及列数。 1 #include 2 using namespace std; 3 #define N 10 4 5 int main() 6 { 7 int n,m,i,j,a[N][N],b[N][N],s; 8 while(cin>>m) 9 { if(m==0) break;10 cin>>n;11 for(i=0;i>a[i][j];14 for(i=0;i>b[i][j]; 17 ... 阅读全文
posted @ 2013-08-16 20:36 猿人谷 阅读(1164) 评论(0) 推荐(0) 编辑
C++ 模板学习
摘要:1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( float x,float y){return (x>y)? x:y ;}//函数3.double max(double x,double y){return (c>y)? x:y ;}但如果在主 阅读全文
posted @ 2013-08-14 21:00 猿人谷 阅读(555) 评论(0) 推荐(0) 编辑
C++容器和算法
摘要:转自:http://www.cnblogs.com/haiyupeter/archive/2012/07/29/2613145.html容器:某一类型数据的集合。C++标准顺序容器包括:vector,list,queue容器初始化 vector t; for (int i = 0; i c; // 空容器 vector c1(t); // 容器t的副本 vector c2(3, 4); // 3个值为4的容器 vector c3(t.begin(), t.end() - 10); // 容器t的begin()和end()-... 阅读全文
posted @ 2013-08-14 14:39 猿人谷 阅读(2602) 评论(0) 推荐(0) 编辑
C++模板知识小结
摘要:模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。由于类模板包含类型参数,因此又称为参数化的类。如果说类是对象的抽象,对象是类的实例,则类模板是类的抽象,类是类模板的实例。1.模板的概念模板定义函数模板:template T fun_name(const T&, const T&);类模板:template class class_name { public: T t; void test(const T& t); }模板规则类模板作用域... 阅读全文
posted @ 2013-08-14 14:37 猿人谷 阅读(658) 评论(0) 推荐(1) 编辑
Effective c++ 小结
摘要:来源:http://www.cnblogs.com/feisky/archive/2009/11/04/1595990.html最近又重新看了Effective C+,不过到现在还是有好多地方不懂的,先记下笔记,待用的时候再细细琢磨。条款1:尽量用const和inline而不用#define这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。用 const的好处是,调试时,可以直接获取变量,而非定义的数字,这个在使用gdb跟踪代码的时候很有用,比如#define NUM 123;如果在gdb中print NUM,会出现NUM找不到符号表的问题, 阅读全文
posted @ 2013-08-14 14:19 猿人谷 阅读(504) 评论(0) 推荐(0) 编辑
C++模板实例掌握
摘要:前段时间重新学习C++,主要看C++编程思想和C++设计新思维。对模版的使用有了更进一层的了解,特总结如下:下面列出了模版的常用情况://1. 模板类静态成员template struct testClass { staticint _data; }; templateint testClass::_data =1; templateint testClass::_data =2; int main( void ) { cout ::_data) ::_data) struct testClass { testClass() { cout struct testClass{ testC... 阅读全文
posted @ 2013-08-14 14:13 猿人谷 阅读(496) 评论(0) 推荐(0) 编辑
C++ primer里的template用法
摘要:来源:http://c.chinaitlab.com/cc/ccjq/200806/752604_2.html-- template 的用法 在程序设计当中经常会出现使用同种数据结构的不同实例的情况。例如:在一个程序中 可以使用多个队列、树、图等结构来组织数据。同种结构的不同实例,也许只在数据元素 的类型或数量上略有差异,如果对每个实例都重新定义,则非常麻烦且容易出错。那么能 否对同种类型数据结构仅定义一次呢?答案是肯定的,C++提供的类模板(Class Template )就可以实现该功能。 一、类模板 类模板是C++提供的一种特殊机制,通过它我们可以定义一种特殊的类(称为模板类),在类 的 阅读全文
posted @ 2013-08-10 15:44 猿人谷 阅读(958) 评论(0) 推荐(0) 编辑
三十分钟掌握STL
摘要:这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆 阅读全文
posted @ 2013-08-07 20:05 猿人谷 阅读(886) 评论(0) 推荐(0) 编辑
list用法详解
摘要:在这里感谢大牛们的奉献!此致敬礼!本文转载自百度文库。作者如下。其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度。标准模板库(STL)介绍作者:Scott Field本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函数push_back和push_front插入一个元素到list中 3 list的成员函数empty() 4 用for循环来处理list中的元素 5 用STL的通用算法for_eac... 阅读全文
posted @ 2013-08-07 19:54 猿人谷 阅读(4502) 评论(0) 推荐(0) 编辑
map用法详解
摘要:转自:http://www.kuqin.com/cpluspluslib/20071231/3265.htmlMap是 STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于 这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上 的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明 什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的 阅读全文
posted @ 2013-08-07 19:44 猿人谷 阅读(3397) 评论(0) 推荐(0) 编辑

1 2 下一页