STL基础--流】的更多相关文章

流 介绍 // cout: 全局ostream对象,(typedef basic_ostream<char> ostream) // <<: ostream& ostream::operator<< (string v); // endl: '\n' + flush { ofstream of("MyLog.txt"); //如果文件不存在,新建 of << "Experience is the mother of wi…
09年研究技术的大神真的好多,本文测试有很多错误,更正后发布下(可能与编辑器相关). file.imbue(locale(file.getloc(), new codecvt_utf8<wchar_t, 0x10FFFF, consume_header>)); 读取UTF-8编码的文件: #include<string> #include<iostream> #include<locale> #include <fstream> #include…
1 迭代器 Iterators 5种迭代器类型 随机访问迭代器: vector, deque, array // 允许的操作 vector<int> itr; itr = itr + 5; // itr往前移5步 itr = itr - 4; if (itr2 > itr1) ... ++itr; // 前置的比后置的快 --itr; 双向迭代器: list, set/multiset, map/multimap // 允许的操作 list<int> itr; ++itr;…
deque 和vector差不多,可以在前端后端插入,一般用deque取代vector,vector只能在后端插入push_back().deque还可以push_front(),但是deque后端插入比vecto稍慢. );返回的是一个迭代器.删除使用erase(位置):或者erase(重哪里a,到哪里b);其中a位置包括,而b位置是不包括的,位置一般都是用的迭代器.list反转和排序:lis.reverse(), lis.sort().可以使用distance(a, b);计算a到b的距离.…
输入流和输出流是相对于内存设备而言 即将外设中的数据读取到内存中就是输入    将内存中的数据写入到外设中就是输出   字符流的由来:     其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的文字. 再对这个文字进行操作,其实就是字节流+编码表     字节流的两个顶层父类: 1,InputStream  2,OutputStream   字符流的两个顶层父类: 1,Reader   2,Writer   这些体系的子类都以父类名作为后缀. 而子类名的前缀就是该对象…
一,STL的组成 1.什么是STL STL(Standard Template Library)标准模板库的简称,是由惠普开发的一系列软件的总称,STL现在是C++的一部分,已经被构建于编译系统之内,所以不需要再引入. 2.STL的组成部分 容器(containers):是一种数据结构容器,使用类模板的方式提供,我们可以方便的进行数据的存储操作. 适配器(adapters):以序列式容器为基础,提供的栈,队列和优先级队列的这种容器. 迭代器(iterators):类似于指针,用来操作容器的对象.…
stl容器:vector,deque,list,map/multimap,set 特殊容器:stack,queue,priority_queue 通用操作 size()  返回当前容器元素数量 empty() 判断容器是否为空 max_size() 返回容器能容纳的最大元素数量 与迭代器有关的操作 begin() 返回一个迭代器,指向第一个元素 end() 指向最后一个元素之后 rbegin() 指向逆向遍历的第一个元素 rend() 指向逆向遍历的最后一个元素之后 元素操作 insert(po…
STL排序算法 排序算法要求随机访问迭代器 vector, deque, container array, native array 例子 vector<int> vec = {9,1,10,2,45,3,90,4,9,5,8}; sort(vec.begin(), vec.end()); // 默认以 < 排序 // vec: 1 2 3 4 5 8 9 9 10 45 90 bool lsb_less(int x, int y) { return (x%10)<(y%10);…
1 首先看个仿函数的例子 class X { public: void operator()(string str) { // 函数调用运算符,返回类型在operator之前 cout << "Calling functor X with parameter " << str<< endl; } operator string () const { return "X"; } //类型转换函数,返回类型在operator之后 };…
容器种类 序列容器(数组,链表) Vector, deque, list, forward list, array 关联容器(二叉树),总是有序的 set, multiset根据值排序,元素值不能修改 map, multimap根据key排序,键值不能修改 无序容器(hash 表) 无序set/multiset 无序map/multimap 序列容器 Vector vector<int> vec; // vec.size() == 0 vec.push_back(4); vec.push_ba…