STL
C++程序员Carea
十年一线开发经验,热爱 C++ ,热爱编程
展开
-
std::transform 将字符串变成小写
std::transform(strMd5Value.begin(), strMd5Value.end(), strMd5Value.begin(), ::tolower);原创 2020-01-13 10:51:32 · 890 阅读 · 0 评论 -
STL容器如何正确调用自己的erase方法
今天写一个小例子时遇到了一个如下的问题:我要遍历一个vector,但遍历过程中某些条件具备的时候我就打算删除复合条件的元素。删除时使用erase永久删除,然后继续完成遍历(这个情况在Effective C++上面看到过,但没找到,还记得有解决办法的,所以就自己想办法了)。比如现在我打算在遍历遇到2的时候直接删除2,删除后的数组还可以当做它用。int b[]={1,2,3,4,5};ve原创 2012-08-07 18:52:24 · 1488 阅读 · 0 评论 -
标准C++ I/O库 迭代器让数据自由流动 V8
IO库的组成三种流C++的IO库以流对象为实体,主要有三种流: (1)标准输入输出流 (2)文件输入输出流 (3)字符串输入输出流原创 2014-11-08 11:07:29 · 1912 阅读 · 0 评论 -
C++ 二进制读写文件全部 V2.0
<br />fstream& Personal::writeToFile(fstream& out) <br />{<br /> out.write(SSN,SSNLen);<br /> out.write(name,nameLen);<br /> out.write(city,cityLen);<br /> out.write((char*)(&year),sizeof(year));<br /> out.write((char*)(&salary),sizeof(salary));<br /> retu原创 2010-10-05 15:42:00 · 1777 阅读 · 0 评论 -
C++ I/O 麻雀虽小五脏俱全 V4
面向对象,数据抽象,标准库使用原创 2010-12-12 12:26:00 · 7571 阅读 · 0 评论 -
C++随机数生成器mt19937生成随机数的用法
下面的代码来自官方示例:// mersenne_twister_engine constructor#include <iostream>#include <chrono>#include <random>#include <string>using namespace std;int main(){ // obtain a se...原创 2017-05-23 19:30:24 · 14493 阅读 · 0 评论 -
C++ std::less<typename>
示例代码:#include <functional>#include <iostream> template <typename A, typename B, typename U = std::less<int>>bool f(A a, B b, U u = U()){ return u(a, b);} int main()...原创 2018-03-31 10:27:50 · 2048 阅读 · 0 评论 -
C++异常的标准用法
C++标准本身提供的异常类完全能够满足任何规模程序的使用。为何要用异常下面首先引用《C++ 程序设计语言》中的段落来描述C++异常的目标(虽然该书描述为何需要异常时已经非常全面,这里只简单列举最为重要的思想):1 当程序是由相互分离的模块组成时,库的作者可以检查出运行时错误,但是一般却不知道怎样去处理他们(抛出异常);用户的代码知道如何处理他们(捕获异常),却又无法检查它们(因为异常发生...原创 2018-10-24 11:01:19 · 2199 阅读 · 0 评论 -
STL全排列算法next_permutation和prev_permutation
全排列的问题取决于如何找到“下一个”,然后就用同样的方法找到全部的排列下面只利用next_permutation从“第一个”开始,修改内容到“下一个”,知道所有的都遍历完,不再有”下一个“为止#include #include #include #include using namespace std;templatevoid print(T begin,T end){原创 2014-11-14 21:34:17 · 4223 阅读 · 0 评论 -
STL算法大全
STL中的所有算法(70个)参考自:http://www.cppblog.com/mzty/archive/2007/03/14/19819.htmlhttp://hi.baidu.com/dinglinbin/blog/item/887e7c30c12e429ba9018e30.html STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包原创 2013-11-28 19:28:14 · 2669 阅读 · 0 评论 -
remove/remove_if算法配合容器的erase方法实现容器删除元素功能
remove 算法描述:查找的得到第一个元素的位置,然后从此位置开始遍历容器,将后面的元素依次前移,跳过和value相同值的元素,也就是说,所有和value相同值的元素都会被覆盖,而其他的元素都会依次前移。最后remove返回"指向最后一个 '有用' 元素的iterator",但是在remove算法过程中,并没有修改原容器的size,以及end()。但是从逻辑角度看,最后的[原创 2013-11-28 19:19:57 · 2635 阅读 · 0 评论 -
用STL实现堆容器
手动实现heap,借助vector和make_heap算法原创 2013-12-22 00:46:11 · 1850 阅读 · 0 评论 -
C++迭代器配接器(实现容器、文件、控制台之间的I/O )
可以将容容器中的内容拷贝到其他容器中、文件中、标准设备中,只需要获取他们的迭代器。文件和标准输入输出设备需要使用流迭代器:ostream_iterator()istream_iterator()容器需要迭代器的配接器:front_inserter(container); // use container.push_front()back_inserter(contain原创 2013-12-04 13:44:52 · 1576 阅读 · 0 评论 -
逆向迭代器
有时候我们要写一些从数组的后面往前遍历的程序,但使用的却是正向迭代器。比如:typedef vector::iterator iter; iter last=--a.end(); for (iter i=last-1;i>=a.begin();i--) { for (iter j=last;j>=i+1;j--) { if ( *i {原创 2012-08-09 15:09:57 · 2039 阅读 · 0 评论