- 博客(13)
- 收藏
- 关注
原创 删除文本中的某一行
相信每个使用C++文件I/O的人都会遇到这样的问题,怎么删除或者修改文件特定的某一行呢? 其实在C++的文件操作中没有所谓的”删除”功能,不过还是可以通过其他方法实现所谓的”删除”: 将除了要删除那特定的一行之外的其他信息拷贝到一个临时文档,在将这个临时文档重新写入原文档,最后删除临时文档即可。 修改原理类似。 下面是一个简单的示例程序,删除某文档特定的一行:#include <iostre
2016-07-30 14:09:15 12113 1
原创 const与指针
const与指针:const与指针有两种不同的搭配方法:指向const的指针:让指针指向一个常量对象,这样可以防止使用该指针来修改所指向的值。如:int age = 39;const int * pt = &age;//pt指向一个const int,因此不能使用pt来修改其值。 //换句话说,*pt的值为const,不能被修改//因此,下面两个做法是非法的:*pt +
2016-07-25 22:49:19 240
原创 C++11新特性:移动语义和右值引用
右值引用传统的C++引用(左值引用)使得标识符关联到左值。左值是一个表示数据的表达式(如变量名或解除引用的指针),程序可以获得其地址。 C++11新增了右值引用。右值引用,顾名思义,可以关联到右值,即——可以出现在赋值表达式的右边,但不能对其应用地址运算符的值。 右值包括字面常量(C风格字符串除外,它表示地址)。诸如x+y等表达式以及返回值的函数(条件是该函数返回的不是引用)。 右值引用用符号
2016-07-25 22:45:15 1933
原创 C++11新特性:可变参数模板
C++11新标准增加了可变参数模板,它让我们可以创建可接受可变数量的参数的模板函数和模板类。本文试着较为详尽地介绍可变参数模板函数。首先,C++11提供了一个用省略号表示的元运算符(…),它可以让我们声明表示模板参数包的标识符。模板参数包其实是一个类型列表的省略(因为编写的时候不知道有多少参数)。同时,元运算符还能让我们声明能够表示函数参数包的标识符。函数参数包其实是一个值列表。template <
2016-07-25 19:27:17 540
原创 string类的find()函数总结
string类的头文件提供了很多搜索相关的函数比如find()函数及其变体。这使得我们可以以多种不同的方式在字符串中搜索给定的子字符串或字符。但是对于初学者来讲,经常被这些长相类似的函数所混淆。 下面总结了string类的find相关函数:1、find():find函数有四种变体: 方法原型 描述 size_type find(const string & str, size_type
2016-07-25 18:12:00 59736 2
原创 关于输出格式的一些总结——cout
关于输出的进制问题:通常情况下使用cout输出,默认输出的是十进制,不管你在源代码里是用什么进制来保存这个数字的。 如果要输出十六进制或者八进制,应该先告诉cout,代码如下:#include "iostream"using namespace std;int main() { int test = 42; cout << "decimal for test: " << tes
2016-07-22 13:21:22 4603 2
原创 定位new运算符
一般的new运算符负责在heap堆中找到一个足以能够满足要求的内存块。new运算符还有另一种变体:定位new运算符(placement new),它能够让程序员指定要使用的位置。既将new运算符用于提供了的地址。定位new运算符在头文件中。定位new运算符直接使用传递给它的地址,它不负责判断哪些内存单元已被使用,也不查找未使用的内存块。这将一些内存管理的负担交给了程序员。一个例子:下面用一个简单的程
2016-07-16 17:28:25 7004 3
原创 简单说说C++的文件IO
许多C++程序会和文件关联,下面简单说说C++文件I\O的一些基本知识点: 首先,要写入文件,即向文件中写入东西,需要一个ofstream类的对象,它是ostream的派生类。 同样,要读取文件中的东西,需要一个ifstream类的对象,它是istream的派生类。 因为是iostram的派生类,他们可以使用iostream的方法。 ofstream和ifstream都包含于fstream头
2016-07-09 22:46:28 632
原创 关于cin的get()和getline()成员函数
cin是使用空白(空格,制表符,换行符)来确定字符串的结束位置这意味着cin在获取字符数组时只读取一个单词。读取该单词后cin自动在其结尾增加空字符。 这有时候很方便,有时候有使我们烦恼:如果我要输入一句话来存入字符串中呢?要将整条短语而不是一个单词作为字符串输入,需要采用另一种字符串读取方法。 具体地说,需要采用面向行而不是面向单词的方法。istream的类cin提供了一些面向行的类成员函数:
2016-07-09 10:45:19 1566
原创 用char数组模拟STL之string
关于字符串,其实字符串是一个抽象的概念,在底层,它是通过char数组来实现的,为了用char数组来模拟字符串,我们需要一个标记来界定字符串的结束位置,因此需要在char数组中字符串的最后一个字符所在位置的后面加一个’\0’。有些情况下用所谓的字符串来赋值给char数组,系统会自己给你添加’\0’,如:char arr[10];scanf("%s", arr);//这种情况下系统就会给你自己添加一个
2016-07-08 12:25:42 523
原创 关于CPP的字符串大小写转换(待补充)
字符串转换大小写是一个常用的功能。 遗憾的是,std::string 没有提供大小写转换的功能。 有一种相对方便的方法是用STL中的transform结合toupper/tolower完成:头文件: string, cctype,algorithm转小写transform(str.begin(),str.end(),str.begin(),tolower);transform(wstr.beg
2016-07-07 12:24:43 3176
原创 尝试实现list的iterator部分源码
为了方便,我把myList这个类的函数的声明和定义全都写在myList这个头文件中,这样是一种不好的编程习惯,并不鼓励这么做。//// myList.h:// C++//// Created by 舒俊淮 on 16/7/7.// Copyright © 2016年 Shujh. All rights reserved.//#include <iostream>using na
2016-07-07 11:00:26 374
转载 欢迎使用Markdown编辑器写博客
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-07-07 10:52:45 258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人