C++
yanqs_whu
武汉电力职业技术学院
展开
-
Ubuntu16.04:proj(5.2.0)+geos(3.7.1)+gdal(2.4.0)源码编译
Referencehttps://gis.stackexchange.com/questions/317109/build-gdal-with-proj-version-6Method#!/usr/bin/env bashGDAL configuration script for Ubuntu 18.0.4Based upon https://grasswiki.osgeo.org/wiki/Compile_and_Install_Ubuntu./autogen.shMYCXXFLAGS=’-原创 2020-10-09 21:07:24 · 871 阅读 · 0 评论 -
偷懒性开发:gitblid+jenkins持续性开发与集成
背景最近在做项目的时候,由于“每次commit代码后,还需要人工编译代码,然后再跑测试”,感觉特别浪费时间和麻烦。因此准备开始偷懒,就上网浏览了一下有没有偷懒的方法。果然,程序员偷懒是普世道理,我很快就找到了一些比较流行的方法:gitlab+CI/jenkinsgitblid+jenkins考察了一下后发现,gitlab固然漂亮,但是其确不能在windows下部署(开发环境为Windo...原创 2019-11-22 12:14:28 · 459 阅读 · 0 评论 -
Cereal library--Serialization函数
原文翻译自:http://uscilab.github.io/cereal/serialization_functions.html#minimalSerialization函数由于C++缺少反射机制(即程序运行时加载未知class),所以实现serialization时需要指明那些数据需要序列化或反序列化。庆幸的是,Cereal提供了多种序列化函数完成上述指定工作。TLDR版翻译 2017-10-16 21:16:21 · 1216 阅读 · 0 评论 -
C/C++:文件读写之文件指针定位
问题描述文件读写时C/C++使用过程中最为常见也最为平凡的操作,其中一个比较重要的事情是对文件指针进行操作,例如重新读写文件(即将文件指针重新移动到文件开头)。 本博客主要介绍在C和C++中分别对文件指针进行操作。为了更方便介绍,本文使用将文件指针移动到文件开头作为示例。示例文件test.txt1 Hello2 World代码功能打开一次文件,并重复读写两次。代...原创 2018-03-10 19:21:06 · 18513 阅读 · 2 评论 -
C++:string的读入
问题描述最近需要使用C++通过cin的方式读取一段字符串,然后发现普通的cin无法解决,需要使用getline。 cin无法正常工作的原因是由于其遇到空格即为停止读入,不能完整读取一段字符串。解决代码#include <iostream>#include <string>using namespace std;int main(){ str...原创 2018-03-24 11:14:39 · 15911 阅读 · 0 评论 -
C++:手把手教学windows下调用外部exe
参考https://blog.csdn.net/linjingtu/article/details/53190491 https://blog.csdn.net/u012348774/article/details/60955695目的手把手教学windows下调用外部exe。思路将外部exe放在本程序同等目录下,然后利用本程序调用外部程序。步骤1、获取当前目录...原创 2018-05-14 23:23:59 · 4036 阅读 · 0 评论 -
C++ : Clock skew detected错误解决办法
Background今天在Ubuntu上用GCC编译一个程序的时候,出现了下面的错误:make: warning: Clock skew detected. Your build may be incompleteSolution最后发现这个错误的原因在于系统时间比文件修改时间早,看了下我的系统时间竟然还是2012-01-13,而今天都已经是2012-01-31呢,于是修改...转载 2018-08-15 17:49:34 · 8752 阅读 · 0 评论 -
C++: warning "will be initialized after [-Wreorder]
背景使用GCC编译代码时遇到以下警告:warning "will be initialized after [-Wreorder]原因构造函数时,初始化成员变量的顺序要与类声明中的变量顺序相对应,若不对应,则出现如题错误。解决方法就是按照顺序进行初始化。对这个问题,StackOverflow上也发生了讨论,以下摘录原文:https://stackoverflow.c...转载 2018-09-03 20:35:46 · 24198 阅读 · 1 评论 -
C++:手把手教学windows下调用外部exe-续
背景之前已经有一篇博文(https://blog.csdn.net/u012348774/article/details/80316917 )介绍如何在windows下调用外部exe,然而这种方法是存在一些缺陷的;所以本次将继续介绍一些新的方法,并在此基础上介绍一下如何处理子程序异常问题。内容CreateProcess调用外部程序SetUnhandledExceptionFilter(...原创 2019-01-19 22:01:29 · 863 阅读 · 0 评论 -
C++:Sqlite调用之增、读、改
背景通常而言,我都会简单的使用文本文件进行程序数据的保存;但是在一些特殊情况下,例如并行读写,只有数据库才能满足需求。Sqlite是一个非常简单的数据库,提供了可爱可亲的调用接口,以下给出了一些简单的demo,示例如何使用c++进行添加数据、读取数据和更新数据。基础假设要保存的数据结构如下:struct DATA{ int id_; double weight_; DATA(...原创 2019-01-19 22:41:45 · 1249 阅读 · 0 评论 -
C++:Ubuntu下创建文件夹
参考https://blog.csdn.net/Sway_2012/article/details/8651477https://blog.csdn.net/u010555688/article/details/51219700代码#include <sys/stat.h>#include <sys/types.h> int main(){ std::s...转载 2019-07-26 18:26:26 · 3509 阅读 · 1 评论 -
Cereal library--一个C++11的序列化库
原文翻译自: http://uscilab.github.io/cereal/index.htmlCereal是一个只有头文件的C++11序列化库,支持将自定义数据类型使用压缩二进制、XML、JSON文件存储。Cereal是一个轻量级、快速,且极易扩展的库。特别的是Cereal不依赖任何三方库,非常容易使用。全面支持C++11Cereal几乎支持C++11标准中的所有类型,不仅如此还支持继承和多态翻译 2017-09-06 21:24:13 · 4621 阅读 · 0 评论 -
Cereal library--快速入门
原文翻译自: http://uscilab.github.io/cereal/quickstart.html本文是一个简单的Cereal入门手册,需要支持C++11的编译器,例如GCC4.7.3,clang3.3,MSVC2013(或更新版)。老版本的编译器也许能编译Cereal代码,但我们不能保证其正常工作,谨慎使用。如何获取只需要将Cereal头文件Include到你的项目中翻译 2017-09-07 22:06:21 · 6484 阅读 · 2 评论 -
SparseLM Demo示例分析
编译好SparseLM后,其中的第一个Demo是Chained Rosenbrock function,其方程式如下:f1=10*(x[i]*x[i]-x[i+1])f2=x[i]-1这个方程在JORGE的文章中也写成: 在Andrew的文章中又是: 而Jan Vlcek写的是: 我不是学数学的,不知道怎么还写了这么多种不同的样子的方程;此处暂且按照demo中的样子来分析吧。首先还是原创 2016-04-09 17:25:38 · 1570 阅读 · 2 评论 -
GDAL学习笔记—简单类封装
实例: 头文件#pragma once//C++#include <iostream>#include <vector>#include <string>#include <assert.h>using namespace std;class GDAL_Image{public: unsigned char *image_data;private: int r原创 2016-07-21 17:10:42 · 950 阅读 · 1 评论 -
Qt调用外部exe并同步显示输出
之前做过一个用C#同步调用exe并显示输出的程序,最近又想用一个Qt做一下这个工作;相比之下,Qt确实要简单许多。我参考http://blog.sina.com.cn/s/blog_7243586a0100t2vn.html,很快就做出了一个同步显示的程序。界面如下:界面虽然丑,但已经达到了同步输出的目的,一下是其代码地址:链接:http://pan.baidu.com/s/1原创 2016-01-08 09:13:42 · 6416 阅读 · 3 评论 -
VS2010 C/C++实用操作
本文的主要内容来自各个博客和论坛,在此处只是仅仅做引用备份。1. 寻找文件的父目录 在程序中经常需要打开一个文件,同时获取其所在的目录。参考网络上的论坛(具体链接已经忘记),代码如下: size_t pos = file_path.find_last_of('\\'); string working_dir(file_path.substr(0,pos + 1)); cou原创 2017-03-09 10:29:45 · 2471 阅读 · 0 评论 -
Boost编译的一些注意事项
关于Boost的编译教程,网站上已经有很多。 本文参考的网站是:http://www.cnblogs.com/zhcncn/p/3950477.html,在此博客中博主已经将Boost编译的各种参数做了非常详尽的介绍。仅仅查阅此博客,便可成功的编译出Boost。 但是除此博客之外,还有一些应当注意的事项,在此博客中并没有完全提到,我对网上的资料加以整理,归纳到此博客中。一、编译x64版本Boos原创 2017-07-16 09:38:18 · 4364 阅读 · 0 评论 -
extern关键字使用
Part1. extern关键字使用测试环境:VS2010 情景描述一:总共有三个cpp:c1.cpp,c2.cpp,main.cpp;其中的代码分别如下:mian.cpp#include <iostream>using namespace std;int main(){ return 0;}c1.cpp#include <iostream>int a = 1;c2.cpp#incl原创 2016-09-24 10:47:47 · 368 阅读 · 0 评论 -
Cereal library--实战
主要内容代码链接(提供VS2015工程和CMake工程): https://github.com/Yannnnnnnnnnnn/cereal_demo 讲解从Cereal Library安装,到编写一个简单的基于Cereal Library的用户系统。 注意,由于需要C++11支持,请尽量使用VS2015及以上。 本文的主要内容包括:Cereal Library安装程序功能介绍原创 2018-01-21 13:41:24 · 1915 阅读 · 0 评论 -
Cereal Library系列教程
教程介绍本文主要为Cereal Library系列教程的索引页,主要内容翻译自Cereal Library官方文档。 本博客也将提供一个Cereal Library实战的具体例子以供学习,其代码如下: https://github.com/Yannnnnnnnnnnn/cereal_demo系列教程检索1.Cereal Library简介 2.Cereal Library快速入门原创 2018-01-20 22:35:08 · 859 阅读 · 0 评论 -
Cereal library--序列化类型
本文翻译自: http://uscilab.github.io/cereal/serialization_archives.htmlCereal支持二进制、XML和JSON三种格式。TLDR版本Cereal支持二进制、XML和JSON三种格式的读写操作,在使用时包含对应的头文件,例如基本知识存储格式决定了数据是如何被输出和读取。不过大多数情况下,我们并不需要知道某种存储格式的内部工作原理,因为使用翻译 2017-09-23 16:21:25 · 2787 阅读 · 0 评论 -
Cereal library--从Boost到Cereal的过渡
原文翻译自: http://uscilab.github.io/cereal/transition_from_boost.html如果你曾经使用过Boost序列化功能,你会发现Cereal和Boost很相似。这是因为Cereal被设计时就考虑了Boost用户的使用习惯,模仿了许多Boost序列化库的语法习惯。本文是一个简要的过渡指南。请保证你已经能正常安装Cereal,并且对基本语法有一个简要的认翻译 2017-09-09 09:41:47 · 1067 阅读 · 0 评论 -
C++ getLine&suplit&double
记录一下,从文件中读取一行数据并且将其分割成double的方法。首先使用getLine()函数读取一行string.getLine(file,str);然后使用http://www.jb51.net/article/55954.htm提供的分割函数,将一行字符串分割成单独的字符串,参考代码如下://字符串分割函数std::vector split(std原创 2015-07-30 09:23:09 · 638 阅读 · 0 评论