C/C++
liuzubing
这个作者很懒,什么都没留下…
展开
-
c++中的sstream
#include <sstream>头文件中主要包含了stringstream,可以用来进行数据格式转换。std::stringstream ss;1.注意每当调用一次<<和>>后,stringstream都会设置oef标志位,oef标志位会导致后面读写操作全部失效。多次转换需要清除oef标志位 ss.clear(),或者清空缓存ss.str("");2.重置数据类容std::string test_str = "test_string";.原创 2021-04-22 14:29:06 · 5779 阅读 · 1 评论 -
c++中的lambda表达式
lambda表达式的作用:(1)可以在函数内距离较近的地方定义,方便使用。(2)可以简化起一个简洁的名字。(3)对于很多一次性的函数,定义lambda函数可以简化代码,而不用修改源代码。Lambda语法:[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}1.1 [函数对象参数]空:没有任何函数对象参数=:函数体内可以使用lambda范围可见局部变量(包括lambda所在的this),值传递方式&a原创 2021-04-21 11:31:41 · 378 阅读 · 0 评论 -
Socket通信实践
1、获取HostInfoget_host_info.h#include <arpa/inet.h> #include <netdb.h> #include <unistd.h> bool getHostInfo(std::string& host_name, std::string& ip){ char name[256]; gethostname(name, sizeof(name)); host_n原创 2021-04-12 16:09:06 · 296 阅读 · 0 评论 -
c++中容器的相关总结
1、容器指针#include<algorithm>std::vector<T>::iteratorrbegin()指向最后一个元素,end()指向最后一个元素的下一个。rend()和begin()都指向第一个元素,是相等的。2、queue先进先出#include<queue>往队列插入元素push或者emplace (尾巴),读取尾巴数据back()移除最先插入的数据 pop(),读取头部数据front();3、deque与vecto.原创 2021-02-02 16:10:57 · 199 阅读 · 0 评论 -
C++11中使用using与typedef定义类型别名
https://www.cnblogs.com/yutongqing/p/6794652.html原创 2021-01-30 16:55:06 · 334 阅读 · 0 评论 -
clamped b_spline
#ifndef B_SPLINE_H#define B_SPLINE_H#include <vector>//节点个数 m + 1//最大次数 p = m//定义基函数class BaseFunction { public: BaseFunction(){}; ~BaseFunction(){}; void setKnots(std::vector<double> knots_) { knots = knots_; m = knots.原创 2021-01-19 18:01:32 · 587 阅读 · 0 评论 -
智能指针
class MyClass{ public: MyClass(int a){}; ~MyClass(){};};int param = 2;std::shared_ptr<MyClass> my_class_ptr = std::make_ptr<MyClass>(param);std::uniqe_ptr<MyClass> my_class_ptr = std::unique_ptr<MyClass>(new.原创 2021-01-08 11:31:56 · 78 阅读 · 0 评论 -
typedef与define的区别与作用
https://blog.csdn.net/summer00072/article/details/80918483原创 2021-01-08 11:05:42 · 143 阅读 · 1 评论 -
虚函数与纯虚函数的区别与作用
https://blog.csdn.net/my__long/article/details/83541979原创 2021-01-08 11:04:03 · 150 阅读 · 0 评论 -
gflags
http://www.yeolar.com/note/2014/12/14/gflags/原创 2020-07-31 14:04:09 · 177 阅读 · 0 评论 -
glog
http://www.yeolar.com/note/2014/12/20/glog/原创 2020-07-31 14:02:54 · 106 阅读 · 0 评论 -
gtest的使用
1、sample1.h#ifndef SAMPLE_1_H#define SAMPLE_1_Hint Factorial(int n);bool IsPrime(int n); #endif2、sample1.cpp#include"sample1.h"int Factorial(int n){ int result = 1; for(int i = 1;i<=n;i++){ result *= i; } return r原创 2020-07-31 10:10:45 · 643 阅读 · 0 评论 -
gtest的安装
使用源代码安装git clone https://github.com/google/googletestcd googletestmkdir buildcd buildcmake ..make注意到,在googletest / build / lib目录下面有四个文件libgmock.a libgmock_main.a libgtest.a libgtest_main.a在googletest / googlemock / include目录下有一个文件夹 gmock...原创 2020-07-31 10:02:48 · 1632 阅读 · 0 评论 -
#pragma once 与#ifndef 的区别解析
原文地址:http://blog.csdn.net/hkx1n/article/details/4313303作用:为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、...转载 2020-06-03 11:41:39 · 297 阅读 · 0 评论 -
C++左值引用&与右值引用&&
https://blog.csdn.net/xiongya8888/article/details/83998574原创 2020-06-01 16:32:09 · 117 阅读 · 0 评论 -
C++中的一些总结
(1)为什么类需要参数列表?完全可以在构造函数中对成员变量赋值啊?在构函数可以使用参数列表或者在构造函数内部对成员变量赋值,但是对于const类型的成员变量只能初始化,不能在构造函数内部赋值。当然也可以在定义const成员变量的时候初始化,但是这样就失去了意义,这样做的后果是对于每一个该类的对象,这个const成员变量都是一个固定的值。(2)为什么类的类的构造函数后面 = delete ?...原创 2020-03-16 10:53:04 · 125 阅读 · 0 评论 -
在Linux(Ubuntu)中使用终端编译并运行.c和.cpp文件
首先要保证系统中安装了C语言和C++对应的编译器:gcc -> C ,g++ -> C++1、.c文件的编译与运行.c文件代码如下:#includeint main(){ printf("shenzhen\n"); return 0;}在当前路径下编译.c文件:gcc -o hello hello.c编译完成后可以看到在和hello.原创 2017-10-21 13:58:02 · 51703 阅读 · 0 评论 -
C++下创建并使用DLL文件 (VS2013 + win7)
1、创建DLL工程File -> New -> Project 选择Win32控制台应用程序,输入项目名称myDLL,选择DLL,Empty Project2、编辑.h和.cpp文件,并生成DLL文件新建createdll.h文件如下:class __declspec(dllimport) CreateDLL{public: int d; void shuchu();原创 2017-11-22 20:12:27 · 662 阅读 · 0 评论 -
C++头文件中<>与""的区别,实例化类的两种方法
1、2、创建类有两种方法:已存在类classA(1)在堆中创建,new关键字,可以用 classA * a = new classA(),或者也可以省略括号,括号内为类的初始化构造函数的参数;在使用的时候开辟内存空间,不过使用指针完毕后需要释放,delete[] a;用不好很危险,用好了功能强大,如果不删除则会占存在很多漂浮的空指针,用大量内存。(2)在栈中创建,可以写成cla原创 2017-11-22 20:33:18 · 690 阅读 · 0 评论 -
解决VS中Debug与Release版本切换的问题
今天看到一篇非常好的博客是关于LIB和DLL的区别与使用是文章,对于我们常常使用DLL与LIB,而又不知其所以然的孩纸们可以看一看http://www.cppblog.com/amazon/archive/2009/09/04/95318.html最近在使用PCL以及VTK等开发库,但是使用过程中总会出现Debug与Release版本之间切换的问题,完全按照网上各种大牛的教程来配置的开原创 2018-01-03 09:44:59 · 9599 阅读 · 1 评论 -
VS2013调用MATLAB 2014计算引擎
1) 给计算机添加系统变量Path: C:\ProgramFiles\MATLAB\R2014b\bin\win64,添加完成之后重新启动计算机。(一定要重新启动很重要)2) 新建一个C++工程,添加X64属性(很重要,应为MATLAB是64位的)3) 属性管理器 -> 右键 -> 属性 ->配置属性 ->VC++目录 ->包含目录添加:C:\ProgramFiles\MATLA原创 2018-01-17 18:04:37 · 1502 阅读 · 0 评论 -
Linux下自定义函数库的创建和使用
Linux下静态库后缀名.a动态库后缀名.so自定义函数库的创建与使用方法请参考下列链接(c语言举例)http://www.pc6.com/infoview/Article_50247.html原创 2018-05-17 20:42:57 · 929 阅读 · 0 评论 -
C/C++字符串长度的计算
char ch1[ 10 ] = {'s','h','\0','h'};char ch2[] = {"sh\0h"};char* ch3 = "shh"(1)strlen()统计字符串存在多少个有效字符,遇到'\0'结束,不包含‘\0’strlen( ch1 ) 会得到 2strlen( ch2) 会得到2strlen( ch3) 会得到3(2)sizeof统计字符串所占空间大小,包含...原创 2018-05-17 21:57:37 · 10522 阅读 · 0 评论 -
C++定义类型初始化、延时、字符串
1、在c++中如何定义一个类型,并且初始化?注意:所有的类型包括类、结构体、整数等常规类型都可以使用下列方式:指针的方式和 实例化对象的方式。(注意指针方式在使用完成后需要delete [] 指针,防止内存占用过多)(1)指针方式只要是前面加一个new关键字,就会产生一个指针;例如:new int; //定义一个指向整数的指针。new int(5); ...原创 2018-06-20 10:38:22 · 475 阅读 · 0 评论 -
c++中const关键字使用的总结
const关键字的总结 :作用 说明 参考代码 注意 定义常量 常量不可修改 const int val = 5; int const val = 5; 与#define宏定义常量的区别: (1)const常量具有类型,编译器可以进行安全检查,推荐使用。 (2)#define宏定义只是简单的字符串替换。 ...原创 2018-07-24 13:02:33 · 988 阅读 · 0 评论 -
c++中static关键字使用总结
作用 参考代码 备注 面向对象中的static 静态全局变量 static int a = 5; //默认为externint b = 6; //默认为externint main( ){ //code} (1)该变量在全局数据区分配内存;具有全局寿命; (2)未经过初始化的静态全局变量,默认初始化为0...原创 2018-07-24 15:52:37 · 644 阅读 · 0 评论 -
c++中引用总结
一、变量的引用引用:就是一个变量的别名,对引用的操作与对变量的直接操作完全一样。定义方法:例子char ch;char& rp = ch;(1)引用本身不占用内存,只是变量的别名。(2)引用中&不再是取地址符。(3)定义一个引用必须要进行初始化。二、引用作为参数(1)传入实参本身,不创建变量副本、避免内存的开销,提升程序效率。(2)函数中,对...原创 2018-07-25 10:31:04 · 187 阅读 · 0 评论 -
CMake实践
cmake已经开发了5,6年的时间,如果没有KDE4,也许不会有人或者Linux发行版本重视cmake,因为除了Kitware似乎没有人使用它。通过KDE4的选型和开发,cmake逐渐进入了人们的视线,在实际的使用过程中,cmake的优势也逐渐的被大家所认识,至少KDE的开发者们给予了cmake极高的评价,同时庞大的KDE项目使用cmake来作为构建工具也证明了cmake的可用性和大项目管...转载 2018-07-30 11:31:06 · 251 阅读 · 0 评论 -
C++中的内联函数inline
内联函数关键字:inline例子:inline const string& shorter_string( const string& s1, const string &s2){ return s.size() < s2.size() ? s1 : s2 ;}(1)使用内联函数一般适用于优化较小,只有几行,但是被经常调用的函...原创 2018-07-27 16:18:59 · 144 阅读 · 0 评论 -
C++类中this指针
先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就很容易理解...转载 2018-07-27 16:25:12 · 282 阅读 · 0 评论 -
CMakeLists.txt文件(1)初步入门
(1)使用CMakeList.txt编译一个程序的基本步骤:在代码cpp文件以及CmakeLists.txt文件目录下,执行以下指令:mkdir buildcd buildcmake ..make(2)CMakeLists.txt文件的一般格式举例存在以下helloworld.cpp文件:#include<iostream>using namespace...原创 2018-07-27 20:18:43 · 362 阅读 · 0 评论 -
Google C++命名规范
原文:http://blog.163.com/zhang_hu_0728/blog/static/2468880672017917104820591/转载 2017-10-21 11:58:19 · 216 阅读 · 0 评论