书上关于*(p++)表达式的几种变形形式的思考题
代码:
int main() { int a[10] = { 1,2,3,4,5,6,7,8,9,10 }; int *p = &a[3]; cout << "*p++ = " << *p++ << endl;
因为++的优先级比*相等,但由...[2018/11/20]
万年历
题目描述
实现思路
利用蔡勒公式计算
代码实现
#include <iostream>
#include <cstdlib>
#include<cmath>
using namespace std;
int main()
{
string inpu...[2018/11/20]
浅谈C++中类的几个基础构造函数
通过例子来介绍下C++类的几个基础构造函数。 我们以一个C类型的字符串为例: cla myString
{public:
myString(const char* rhs = 0);...[2018/11/19]
一步一步实现基于GPU的pathtracer(三):path tracing 简述
全局光照这个名词在计算机图形学里已经不算一个新名词了,现在一提到拟真度,很多人基本上都会去想到全局光照,这个名词上世纪七八十年代就有了,好像是由一个叫Jim Kajiya的大神在他那篇已经被引用了不知道多少次的论文里《The Rendering Equation》里提出来的,现在很多全局光照算...[2018/11/19]
学生选题信息管理系统
本人大一写东忙西忙写的,感觉很一般,巩固基础麻,没有别的大神写的那么酷炫,但是还是基本任务完成了。
需先建立student.txt文件#include<fstream>
#include<cstring>
#include<stdio....[2018/11/19]
【阶梯报告】洛谷P3391【模板】文艺平衡树 splay【阶梯报告】洛谷P3391【模板】文艺平衡树 splay
【阶梯报告】洛谷P3391【模板】文艺平衡树 splay
题目链接在这里[链接](https: www.luogu.org/problemnew how/P3391) 最近在学习splay,终于做对了这道模版题,虽然不是很难的样子。~~但是我一开始并不会做,而且看完题解之后还打错一直打不对,调试...[2018/11/19]
c/c++ 多线程 一个线程等待某种事件发生
多线程 一个线程等待某种事件发生
背景:某个线程在能够完成其任务之前可能需要等待另一个线程完成其任务。
例如:坐夜间列车,为了能够不坐过站,
1,整夜保持清醒,但是这样你就会非常累,不能够睡觉。
2,如果你知道几点会到你要下车的站,就可以提前定个闹钟,然后睡觉等待闹钟叫醒你,但是如果车中间有延误,闹...[2018/11/19]
Effective C++标题整理
Effective C++ 话说光看这50个tip又有什么用呢?只有实际使用的时候才体现它们的价值才对。 就像只看《代码大全》不能成为一个好程序员,必须结合实际写项目经验才行。从C转向C++条款1:尽量使用const和inline而不用#define条款2:尽量用而不用<stdio.h>...[2018/11/19]
C++STL快速入门学习
C++ STL中最基本以及最常用的类或容器无非就是以下几个:
string
vector
set
list
map
下面就依次介绍一下它们,并给出一些最常见的使用方法,做到最快入门。
string
首先看看我们C语言中一般怎么使用字符串的
创建指针指向字符串常量,这段字符串我们...[2018/11/19]
递归思想
递归思想 实质:一种思考问题的方法(不局限于一类具体的算法) 递归的两个重要概念:——代码实现的关键点 递归边界(分解的尽头) 递归式 (分解的手段)分治算法理解 地位:递归思想的经典实现 分治法三步骤: 1划分:将原问题分解为若干和原问题具有相同或相似结构的子问...[2018/11/19]
【数据结构】1-2 约瑟夫环问题
这里放出两种不同的代码,一个是老师给的(较为复杂),还有一个是自己写的。
自己写的:
#include<iostream>
using namespace std;
struct Node {
int data; 数据单元
Node *li...[2018/11/19]
基于C++ Qt实现的红色警戒3修改器
前言 这部修改器制作有一段时间了,但是一直没出教程。今天利用周末空闲写篇教程,给后来者指路的同时也加深自己对游戏修改器的理解,大佬就随便看看吧 浏览了一下网络,形形色色的单机游戏修改器教程,但是基本只实现了一到两个功能,GUI图形界面也没有。网站上能下载到的实现很多功能的修改器却又不开源,对新手不够...[2018/11/19]
c/c++ 多线程 利用条件变量实现线程安全的队列c/c++ 多线程 利用条件变量实现线程安全的队列
多线程 利用条件变量实现线程安全的队列
背景:标准STL库的队列queue是线程不安全的。
利用条件变量(Condition variable)简单实现一个线程安全的队列。
代码:
#include <queue>
#include <memory>
#include &l...[2018/11/19]
CUDA 动态编译(NVRTC)简记
在linux上用sublime text 3上写完CUDA代码和c++代码后,想用code::blocks去一并编译,就像visual studio那样一键编译运行,但发现在code::blocks上设定自定义编译器为nvcc时比较麻烦,所以想到了用NVRTC。
NVRTC中的RTC是runt...[2018/11/17]
C++学习(二十)(C语言部分)之 函数1
函数 printf 输出的函数 scanf 输入的函数 函数是什么 怎么写 是一组一起执行一个任务的语句 一个程序的基本组成单位是函数 只需要知道函数名字和括号里面要填的内容 就可以调用函数 1、如果代码中有重复的语句--->写成函数 可以缩短代码量 提高效率 2、用的时候...[2018/11/17]
C++ 迭代器运算符 箭头运算符->C++ 迭代器运算符 箭头运算符->
所有标准库容器都支持迭代器,只有少数几种才支持下标运算
迭代器运算符
运算符
作用
*iter
返回迭代器iter所指元素的引用
iter -> mem
解引用iter,并获取元素名为mem的成员
++iter
令iter指示容器的下一个元素
--iter
令it...[2018/11/17]
FTP和TCP的文件传输效率对比测试分析
前言
最近因项目需要,需要把一定数量的中等文件从开发板上传到电脑上,分别选择了FTP和TCP自定义协议两种方式进行传输,进行了简单的对比测试,故做如下记录。
测试环境
开发板:Linux,ARMv7 单核,内存512M
PC:winodw, i7,8G内存,SSD
网络:100M,...[2018/11/16]
C++调用Python脚本中的函数
1.环境配置 安装完python后,把python的include和lib拷贝到自己的工程目录下 然后在工程中包括进去 2.例子 先写一个python的测试脚本,如下 这个脚本里面定义了两个函数Hello()和_add()。我的脚本的文件名叫mytest.py C++代码: #in...[2018/11/16]
【C++并发实战】(一)并发基本概念
什么是并发
并发,最简单的理解就是,两个或者以上的活动同时进行。举个比较实际的例子,你可以手脚并用,两只手做不同的动作等等。
在计算机中的“并发”,是指一个系统可以同时执行多个独立的活动。在以前大多数计算机都只有一个处理单元(或者核心),这种计算机在同一时刻只能执行一个任务,任...[2018/11/15]
虚函数和纯虚函数的区别(转载)
首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。 定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。 1、简介 假设我们有下面...[2018/11/15]
02替换空格02替换空格
题目描述:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路有:
#判断字符串是否为空,判断length是否大于0。
#记录空格的数量,没有空格直...[2018/11/15]
01二维有序数组的查找
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路:
#第一步:要判断数组是否非空,空数组 return false,不用进行其他操作。...[2018/11/15]
java+appium 自动化环境搭建
1、安装JDK1.7及以上
2、下载解压sdk并且配置环境变量:
ANDROID_HOME:...\adt-bundle-windows-x86_64-20140702\sdk
PATH:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%...[2018/11/15]
putchar()和getchar()使用解析
1.putchar()
作用:输出一个字符
格式:putchar(c),c为输出参数
#include <stdio.h>
int main()
{
char a1=''A'',b1=''B'';
int a2=65,b2=66;
putchar(a1)...[2018/11/14]
C++ 实现Golang里的defer
不多说了,直接贴代码。就一个hpp文件。
1 #include <functional>
2
3 #define CONCAT_(a, b) a##b
4 #define CONCAT(a, b) CONCAT_(a,b)
5 /*
6 eg. defer(代码); ...[2018/11/14]
函数内存分配
在最近的代码调试中,遇到一个比较棘手的崩溃问题,现象为程序在函数的返回值处崩溃,报警提示如图:
经过排查,最终发现在对结构体内数组初始化赋值时出现了数组越界现象,导致函数在返回时出现异常,导致程序崩溃,借此机会,对内存栈内空间的函数占用空间总结学习:
1. 进程的内存布局
对于一个进程...[2018/11/14]
2018年中国C++大会详细日程+报名
大会特色
本届大会的演讲主题将围绕modern c++工程应用、c++2a两个方面, 重点是modern c++应用和c++最新标准,希望让观众既能学习到modern c++是如何在实际工程应用的,又能把握c++未来的发展趋势。
除此之外,更具特色的是workshop,技术大会不能光说不练,我...[2018/11/13]
一个纯虚函数导致的问题
WIN7系统,VC2010下。
程序A静态链接B.dll动态库。
B.dll中导出3个类:
(1) 基类
cla AFX_EXT_CLASS base
{
public:
base(){};
virtual ~base(){};
virtual ...[2018/11/13]
C++ 11
---恢复内容开始---
C++11 新特性 借鉴于 https: www.cnblogs.com/feng-sc/p/5710724.html
C++ 2011/2014 统称 C++2.0
1.auto关键字
auto这个关键字,是一个自动检测类型的关键字,当...[2018/11/13]
(C/C++学习)17.bitset(位操作)
说明:bitset 就像 vector 一样,是 C++ 的一个类模板库,用来对一个数的二进制位进行管理、判断等操作,使用时需要包含头文件 #include<bitset>。
1.声明及定义
格式:bitset<N> var(M)
其中 varm 为 ...[2018/11/12]
c/c++ 多线程 ubuntu18.04 boost编译与运行的坑
多线程 boost编译与运行的坑
背景:因为要使用boost里的多线程库,所以遇到了下面的坑。
系统版本:ubuntu18.04
一,安装boost
1,去boost官网下载 boost_1_XX_0.tar.gz
2,解压
tar -zxvf boost_1_65_0.tar.gz
...[2018/11/12]
c/c++ 多线程 boost的读写(reader-writer)锁
多线程 boost的读写(reader-writer)锁
背景:保护很少更新的数据结构时,c++标准库没有提供相应的功能。
例如:有个DNS条目缓存的map,基本上很少有更新,大部分都是读取,但是偶尔也会有更新,这种情况下,如果在读取的函数里加上std::mutex就过于悲观了,每次只能有一个线程读...[2018/11/12]
muduo网络库学习笔记(三)TimerQueue定时器队列
目录
muduo网络库学习笔记(三)TimerQueue定时器队列
Linux中的时间函数
timerfd简单使用介绍
timerfd示例
muduo中对timerfd的封装
TimerQueue的结构.
Timer
Timer的容器.
TimerQueue私有接口介绍.
更新定时器
时序图
...[2018/11/12]
NOIP游记 Day0
2018年11月9日,蒟蒻第一次参加NOIP考试,这也是我的第一篇博客。
21:48分,临睡前,我打开笔记本,在NOIP的前一天晚上,注册了博客园。发表了第一篇博客。
说是“游记”,但其实并非是真正的“游记”,说起来可能更像“随笔”,亦或者“感言”。
2018年8月,中考刚刚结束,作为高一的...[2018/11/9]
C++借助curses库实现俄罗斯方块
主要要实现如下几个功能:方块的移动控制、方块变形、判定方块是否接触边界和进行方块堆积、对方块进行消除。
1.方块的移动控制 上下左右四个方向 上-->变形,下-->加速下落,左-->向左移动,右-->向右移动 注意在移动的时候,还要判定是否接触边界,特别是向下移动,除了需...[2018/11/9]
PTAPTA
#include<bit tdc++.h>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR ...[2018/11/9]
PTA-栈(括弧匹配)
#include<bit tdc++.h>
using namespace std;
#define STACK_INIT_SIZE 10000
#define STACKINCREMENT 10
#define TRUE 1
#define F...[2018/11/9]
顺序结构栈与队列之货物货架管理
#include <iostream> #include<string.h>
using namespace std;
static int n; 货架(栈)的最大容量
信息结构体 typedef struct /*...[2018/11/9]
C++雾中风景番外篇3:GDB与Valgrind ,调试代码内存的工具
写 C++的同学想必有太多和内存打交道的血泪经验了,常常被 C++的内存问题搅的焦头烂额。(写 core 的经验了)有很多同学一见到 core 就两眼一抹黑,不知所措了。笔者 入"坑"C++之后,在调试 C++代码的过程之中,学习了不少调试代码内存的工具。希望借这个机会来介绍一下笔者常用的工具,...[2018/11/9]
C++ Type Traits
Custom Type Based on Type Traits
#include <iostream>
#include <string>
enum cla SimpleType {
ST_INVALID, ST_INT64, ST_UINT64, ST...[2018/11/9]
栈与队列链式存储结构一货物上架问题
#include <iostream> #include<string.h>
static int n; 用于输入货架(...[2018/11/9]
BZOJ2763: [JLOI2011]飞行路线(分层图 最短路)BZOJ2763: [JLOI2011]飞行路线(分层图 最短路)
题意
题目链接
Sol
分层图+最短路
建\(k+1\)层图,对于边\((u, v, w)\),首先在本层内连边权为\(w\)的无向边,再各向下一层对应的节点连边权为\(0\)的有向边
如果是取最大最小值的话可以考虑二分答案+最短路
luogu-judger-enable-o2
l...[2018/11/9]
根据sockfd获取TCP连接本地地址以及对端地址
摘抄自muduo代码实现。
获取本地地址(LocalAddr):
1 struct sockaddr_in6 sockets::getLocalAddr(int sockfd)
2 {
3 struct sockaddr_in6 localaddr;
4 ...[2018/11/8]
[20181107][模拟赛]
[20181107][模拟赛]
题面
T1
思路
考虑一下每个数会与其他位置的哪些数字遇到。显然每隔gcd(n,m,k)个数都会遇到一次。所以只要看一下将给出的所有数字全部对gcd(n,m,k)取模是否能包含从0到gcd(n,m,k) - 1的所有数就行了。
代码
#include<cstd...[2018/11/8]
算法竞赛中c++一些需要注意的错误
1. 关于精度:
取整
除法取整:
(除数为正)被除数为正时系统除法为向下取整,被除数为负时系统除法为向上取整。
向上取整(被除数非负,除数为正):
一般写法(有bug):
int cal(int x,int y)
{
return (x-1)/y+1;
}
上述写法只适用于x为...[2018/11/8]
洛谷P1600 天天爱跑步(差分 LCA 桶)
题意
题目链接
Sol
一步一步的来考虑
\(25 \%\):直接\(O(nm)\)的暴力
链的情况:维护两个差分数组,分别表示从左向右和从右向左的贡献,
\(S_i = 1\):统计每个点的子树内有多少起点即可
\(T_i = 1\):同样还是差分的思想,由于每个点 能对其产生的点的深...[2018/11/7]
c/c++ 多线程 std::call_once的应用
多线程 std::call_once的应用
std::call_once的应用:类成员的延迟初始化,并只初始化一次。和static的作用很像,都要求是线程安全的,c++11之前在多线程的环境下,static好像不是线程安全的,c++11开始,static是线程安全的了。
注意:即使某一个特定的线程里...[2018/11/7]
懒癌晚期学图论的时候自己用C语言写了个求可达性矩阵的算法~
可达性矩阵算法~
直接上代码
#include <iostream>
#include <cstring>
using namespace std;
#define n 5
void print(int a[n][n]);
void print1(int a[n][n]);...[2018/11/6]
c/c++ 多线程 std::oncec/c++ 多线程 std::once
多线程 std::once
转自:https: blog.csdn.net/hengyunabc/article/detail 33031465
std::once的特点:即使有多个线程要访问同一个函数,只有一个线程会成功。
std::once的用途:当某个数据只有在初始化的时候需要线程安全的时候...[2018/11/6]