C/C++
kepcum
一分耕耘一分收获
展开
-
C++类的定义
#include #include #include using namespace std;class Date;class Person;class Date{private: int year,month,day;public: void setDate(int y,int m,int d) { year = y; mo原创 2017-12-09 19:59:30 · 265 阅读 · 0 评论 -
C++ sort用法
#include <iostream>#include <string>#include <sstream>#include <algorithm>using namespace std;//第一种方法是重载小于运算符//sort(begin, end, sort_type),(起始地址,结束地址,排序方式),begin和end是左闭...原创 2018-11-20 17:22:01 · 1575 阅读 · 0 评论 -
c++中模板与重载
#include <iostream>#include <string>#include <sstream>using namespace std;template<typename T>T sum(T *begin, T *end){ T *p = begin(); T ans = 0; for(T *p;p!=end;p++)...原创 2018-11-20 16:59:57 · 503 阅读 · 0 评论 -
如何获得字符串数组的长度,如:string[] arr
len = (sizeof(array) / sizeof(array[0]))而在C++中则可以使用模板技术定义一个函数,比如:template int getArrayLen(T& array){ return (sizeof(array) / sizeof(array[0]));}这样对于一些简单的数组可以使用这个宏或者这个函数转载 2017-04-13 17:23:22 · 2512 阅读 · 0 评论 -
c++读写文件总结
在C++中如何实现文件的读写?一、ASCII 输出为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。转载 2017-04-14 20:52:38 · 262 阅读 · 0 评论 -
数组引用传参
直接传就行,因为数组可弱化为指针void f(string buffer[1000]){ buffer[1]="1000";}int main(){// string buffer[1]; string buffer1[1000]; int l1=0; f(buffer1); cout<<buffer1[1]<<endl; return原创 2017-04-15 15:01:20 · 1322 阅读 · 0 评论 -
vector
可以把vector想像成一个数组vector::iterator iter=v.begin(),中iter可看做是指向vector的指针void test_vector(){ vector v1(10,1),v2;//vector包含10个值为1的对象// v1.empty();//判空 cout<<v1.size()<<endl; v2=v1;//v1,转载 2017-04-21 16:35:02 · 269 阅读 · 0 评论 -
操作符的重载和模板的使用
模板声明后紧接着就要使用,如:templateT sum(T *begin,T *end){ T ans=0; for(T *p=begin;p!=end;p++) { ans= ans+*p; } return ans;}#include using namespace std;templateT转载 2017-04-21 17:36:40 · 397 阅读 · 0 评论 -
vector
注意:(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素vec.erase(vec.begin()+i,vec.begin()+j);删除区间[i,j-1];区间从0开始在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。#include #include #include using namespac转载 2017-04-21 20:21:22 · 324 阅读 · 0 评论 -
c++反向迭代器
C++ primer (中文版第四版)第273页9.3.2 begin和end成员 begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一转载 2017-04-22 12:12:33 · 2134 阅读 · 0 评论 -
C++set
1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让转载 2017-04-22 16:14:29 · 630 阅读 · 0 评论 -
增自减运算法的深入理解
增自减运算法的深入理解C语言的自增++,自减--运算符对于初学者来说一直都是个难题,甚至很多老手也会产生困惑,最近我在网上看到一个问题:#include void main() /*主函数*/ { int a,b,c,d; a=5; b=5; c=(a++)+(a++)+(a++); d=(++b)+(++b)+(++b);转载 2017-04-22 17:03:02 · 286 阅读 · 0 评论 -
动态库与静态库优缺点比较
原文地址https://blog.csdn.net/u010649766/article/details/78528601动态库与静态库优缺点比较我们在编写一个 C 语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行...转载 2018-12-02 19:36:03 · 640 阅读 · 0 评论