//1.当函数返回string时候的注意点:
string Fun()
{return string("szn");
}const char* pStr = Fun().c_str();
//如上代码,pStr = "" 而非 "szn",原因:返回的string变量被析构了//2.正则表达式组件:
regex:用于表示一个正则表达式
regex_match:将一个字符序列与一个正则表达式匹配
regex_search:寻找第一个与正则表达式匹配的子序列
regex_replace:使用给定格式替换一个正则表达式
sregex_iterator:迭代器适配器,调用regex_sea...
1.编写通常接受一个参数(字符串的地址),并打印该字符串的函数。不过,如果提供了第二个参数(int类型),且该参数不为0,则该函数打印字符串的次数将为该函数被调用的次数(注意,字符串的打印次数不等于第二个参数的值,而等于函数被调用的次数)。是的,这是一个非常可笑的函数,但它让读者能够使用本章介绍的一些技术。在一个简单的程序中使用该函数,以演示该函数是如何工作的。#include <iostream>
usingnamespace std;vo...
JNI :Java Native Interface随便找几篇文章看下就掌握了http://www.cnblogs.com/icejoywoo/archive/2012/02/22/2363709.htmlhttp://blog.csdn.net/createchance/article/details/53783490原文:https://www.cnblogs.com/shengulong/p/8432014.html
c++ move关键字move的由来:在 c++11 以前存在一个有趣的现象:T& 指向 lvalue (左传引用), const T& 既可以指向 lvalue 也可以指向 rvalue。但却没有一种引用类型,可以限制为只指向 rvalue。c++11 中的 move() 是这样一个函数,它接受一个参数,然后返回一个该参数对应的右值引用.就这么简单!你甚至可以暂时想像它的原型是这样的(当然是错的)T&& move(T& val);&&的由来:在函数体中,程序员无法分辨传进来的参数到底是不是 rv...
也许,你对设计一个应用程序的入口有点茫然,我这里讲一些简单的套路//你自己写一个app类,继承于一个线程类,当然这个线程类你可以自己封装,也可以去找开源的
class MyApp:XxThread{
public:
bool NeedStop();
void NoticeStop()<span style="font-family: Arial, Helvetica, sans-serif;">}
</span><span style="font-family: Arial, Helvetica, sans-serif;"> void Run(){</span><span style="font-family: Arial, Helvetica, ...
假设有一个Date类Date.hclass Date {
private:int year, month, day;
};如果有个Task类的定义要用到Date类,有两种写法其一Task1.hclass Date;
class Task1 {
public:Date getData();
};其二Task2.h#include "Date.h"class Task2 {
public:Date getData();
};一个采用前置声明,一个采用#include<Date.h>加入了Date的定义。两种方法都能通过编译。但是 Task1.h 这种写法更好。如果Date.h 的 private 成员变量改变,比如变成 double...
背景: 由于APP对于现在的我来说,只是一个工具,对VC++6.0绝对的是浅尝辄止吧!(暂时没有太多的时间分配到这块)所以在此把错误积累下来,以备下次使用少走弯路。正文一、出现警告“warning c4273:inconsistent dll linkage” 在报错的XX.h头文件中可以看到如下定义#ifdef XXX_DLL_EXPORTS
#define XXX_API extern"C" __declspec(dllexport)
#else#define XXX_API extern"C" __declspec(dllimport)
#endif 解决方案: ...
13.5 谈谈C语言关键字”volatile”的意义(或重要性)?解答关键字volatile的作用是指示编译器,即使代码不对变量做任何改动,该变量的值仍可能被外界修改。操作系统、硬件或其他线程都可能修改该变量。该变量的值由可能遭受意料之外的修改,因此,每一次使用时,编译器都会重新从内存中获取这个值。volatile的意思是”易变的”,因为访问寄存器比访问内存要快得多, 所以编译器一般都会做减少存取内存的优化。volatile 这个关键字会...
简介:http://www.runoob.com/sqlite/sqlite-functions.html 原文:http://www.cnblogs.com/hzijone/p/5477312.html
C++11随机数的正确打开方式在C++11之前,现有的随机数函数都存在一个问题:在利用循环多次获取随机数时,如果程序运行过快或者使用了多线程等方法,srand((unsigned)time(null))这样的设置当前系统时间为种子的方法每次返回的随机数都是一样的。而C++11中提供了真随机数做种子的方法来解决这一问题。By the way,2019年了,我见过的编译器都不需要特殊指定使用的是C++11的新特征了random_device标准库提供了一个非确定性随机数生成设...
指针空值nullptr以往用0或者NULL去表达空指针的问题:
C/C++的NULL宏是个被有很多潜在BUG的宏。因为有的库把其定义成整数0,有的定义成 (void*)0。在C的时代还好。但是在C++的时代,这就会引发很多问题。
C++11使用nullptr关键字,是表达更准确,类型安全的空指针#include <iostream>
using namespace std;
int main() {
//!void voidObject; 错,不能声明void类型的变量
void *pv; //对,可以声明void类型的指针
int i = 5;
pv = ...
先来写一个最简单的C++程序// helloworld.cpp
#include <iostream>int main() {std::cout << "Hello, Wrold!" << std::endl;return0;
}这段代码反应了4个问题:注释预处理指令main()函数输入/输出流下面主要说一下预处理指令:生成一个C++程序有三步。首先,代码在预处理器中运行,预处理器会识别代码中的元信息;随后,代码被编译成计算机可以识别的目标文件;最后,每一个目标文件链接在一起就变成了一个应用程序。预处理指令...
看了Horky同学的《混合使用Objective-C,C++和Objective-C++》博文,我也有些想法也记录一下,方便今后学习1.Objective-C / C++ /C 深度混合不是一个好的选择,易容出错,也不好维护,当在Objective-C代码中使用C++类时,我们会使用等价的Objective-C类型和函数将C++代码封装(wrap)起来。2.Objective-C头文件中不要引用C++的头文件,因为Objective-C中没有class这个关键字. 编译器会报Unknown type name ‘class‘; did you mean ‘...
构造函数的工作是保证每个对象的数据成员具有合适的初始值。一、构造函数的定义(1)构造函数可以被重载。可以为一个类声明的构造函数的数量没有限制,只要每个构造函数的形参表是唯一的。(2)实参决定使用哪个构造函数。(3)构造函数自动执行。只要创建该类型的一个对象,编译器就运行一个构造函数。(4)构造函数不能声明为const。创建类类型的const对象时,运行一个普通构造函数来初始化该const对象。构造函数的工作是初始化该...
文档https:docs.microsoft.com/en-us/windows/win32/procthread/fibers 简要讲解纤程也是一个执行上下文,比如各个寄存器的值只不过纤程是由用户层面决定调度的线程可以被转换为纤程,也就是创建纤程上下文,这样才能进行纤程之间的切换,也就是把当前上下文保存起来去执行另一个上下文纤程只能由纤程去调度,也就是拥有纤程上下文的执行实体把当前纤程上下文保存,然后装上另一个纤程上下文执行假如拥有执行实体的纤程自己删自己...