
杂项
文章平均质量分 62
flying_music
十年C++ 精通if-else编程
展开
-
Centos(腾讯云) 安装Tensorflow失败
每次搞环境都是一波三折,血泪交织,废话不多说,直接进入主题疼讯云自带的python是2.7.5的,后面自己安装过python3.6 所以系统里是python2 python3共存的(pip2 pip3也是共存的)然后用网上的指令pip3 install tensorflow 报错提示:rc/python/grpcio/grpc/_cython/cygrpc.cpp:1166:20: fatal error: Python.h: No such file or directory百度是pyth原创 2021-05-18 18:58:58 · 309 阅读 · 0 评论 -
C/C++中多个库相互包含时,链接器的处理规则
C/C++中多个库相互包含时,链接器的处理规则以下结果都是在gcc(4.8.5)下测试的,其他平台及版本不确定是否一致。1. 在链接的时候,如果两个库中直接定义了同名接口,链接两个库是会报重复定义错误的。(无论接口实现是否相同)2. 但是,如果两个库中的同名接口来自另外一个库,即,如果AB.a AC.a 都链接了A.a 那AB.a 和AC.a 还可以链接进同一个可执行文件或者库,这个时候 2.1 如果两个A.a一样,则链接正常进行。 2.2 如果两个A.a不一样但相互包含,比如...原创 2021-02-02 17:40:31 · 845 阅读 · 3 评论 -
gdb不能看源文件
gdb不能看源文件我们用gdb调试的时候,可能遇到gdb无法打断点、gdb不能看源文件、gdb不能单步调试等诸如此类问题,非常让人头疼...这种问题可能有很多种原因,今天就几种常见的情况来做个总结,后面遇到了再补充,如果您发现了其他场景,欢迎评论区补充。一、打断点方式先来说一下给程序打断点的方式: b test.cpp:127 //在test.cpp的127行打断点 b Test::func(int, int*) //在Test::func处打断点(由于C++支持重载,所以必原创 2021-02-02 17:15:45 · 2402 阅读 · 0 评论 -
C++中的线程同步
1. 背景知识线程是计算机科学中一个常见的概念,很多开发人员也在开发多线程程序。很多文章也都在讲如何创建线程,以及如何使用线程。但是,对线程背景的介绍还是比较少的,新人非常容易"陷入局优解",产生只见树木不见森林的现象,下面就我了解到的多线程背景给大家做一个介绍,希望可以起到抛砖引玉的作用。首先多线程是必须的,这一点应该不用质疑,就不多啰嗦了。当计算机先驱们意识到这一点的时候,做了两件事:...原创 2019-11-30 20:09:10 · 424 阅读 · 0 评论 -
跨服务器拷贝文件(SCP命令的使用)
操作前提:①你已经登录了本地服务器;②你知道远程服务器IP地址(假定为192.168.0.2);③你在远程服务器有Linux用户(假设为root)1. 本地文件 -------> 远程服务器假定想把本地计算机/home下的一个名为a.tar.tz的文件拷贝到远程服务器的/home/tmp。可以用这个命令:scp /home/a.tar.tz root@192.168.0...原创 2018-11-10 11:40:31 · 11240 阅读 · 1 评论 -
程序优化的几个层次
计算机是人类发明的最强大的工具,而程序是人和计算机交流的工具,从我们遇到一个问题到cpu中进行的电位的运算,这个过程大致可以分为四个步骤:建模、编码、翻译、执行。这几个过程完成的质量关系到我们的问题是否能够解决,以及解决的速度和质量等。所以要想编写正确高效的程序,需要对这几个部分分别把控。实际上,现在我们已经有很多科学是在研究这些过程,目的就是能更好的完成它们。先来说一下建模,建模是解决问题的原创 2016-09-20 20:10:32 · 1628 阅读 · 0 评论 -
C++多态:从虚表指针到设计模式
多态是面向对象语言的一种高级特性。而又由于C++既面向底层又原创 2016-05-17 21:17:49 · 2035 阅读 · 0 评论 -
试着从问题出发
“方法总比问题多”,相信大家对这句励志名言都不陌生,还有一些大师以此为题写成了著作。不过作为一个理科生,我对这种的心灵鸡汤是没有太多兴趣的。从理性的角度出发,现实生活中的“方法”和“问题”的数量都是无限,也就是存在无穷多个“方法”和无穷多个“问题”,所以并不存在谁比谁多的问题!不过我们倒是可以从中发现一个有趣的关系,即“问题”和“方法”的关系,我们这里指的方法是对应问题的方法,即问题的解决方法原创 2016-05-28 18:54:20 · 920 阅读 · 0 评论 -
实现自己的字符串拷贝函数Strcpy
strcpy是C语言的库函数,用于完成字符串的拷贝,很多笔试面试过程中要求我们自己实现这个函数。字符串拷贝本身并没有太多技巧,可以利用最后的'\0'作为界限,用循环完成拷贝,代码如下char *Strcpy(char *strDst, const char *strSrc){ //功能:实现字符串的拷贝 //说明:要求两字符串内存区域 不可以 有重叠 // 负责添加'\0' //原创 2016-05-13 08:39:15 · 8361 阅读 · 0 评论 -
数字与字符串之间的转换
C语言为我们提供了数字和字符串之间的转换函数,这些函数有很多,常用的有:整型数转字符串函数itoa():char *itoa(int value,char *string,int radix);//int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等浮点数转字符串函数gcvt():c原创 2016-05-12 11:09:30 · 7659 阅读 · 0 评论 -
当程序设计遇到难题时
如果遇到的问题比较复杂而不能很快解决,那要做的第一点是让自己动起手来,千万不要守着问题发呆,一定记住,无论是做什么,一定要让自己跨出第一步,跨出第一步的方法有几个,今天来总结一下:1.举一个例子问题逻辑比较复杂抽象,那就用一个具体的例子来让它变得有血有肉。找一个小一点的例子,从头到尾把问题走一遍,对理清问题脉络、找到问题的难点、关键点是非常重要的。2.将思路写下来有时候我们既要理清原创 2016-03-14 09:38:48 · 893 阅读 · 0 评论 -
程序调试的一般思路
每个程序员的很多时间都在和bug打交道,而debug的过程总不那么令人高兴。本人在调试过程中总结了几点调试程序的一般方法,写出来和大家分享,能力有限,欢迎各位大神批评指正!1.单步调试从问题程序的起点开始,单步执行程序观察变量的变化过程,是最基本的程序调试方法。这种方法适合错误定位范围较小的程序,并且要求我们知道正确的变量值应该怎样变化,通过对比当前值和理论值来发现错误的代码点。2.断原创 2016-02-21 21:38:14 · 2861 阅读 · 0 评论 -
提高C++程序执行效率的几点方法
首先要明确一点,C++的效率是C++的必要生命元素之一。C++是面向对象的,但同时也支持所有C的编程方法。这使得我们大部分C++程序在面向过程和面向对象之间徘徊,这也正是C++的优点之一,程序员可以决定多大程度上面向对象以提高开发速度并降低维护成本,同时他们还可以决定多大程度上面向过程以提高运行速度。当然,C++是无比繁杂的,这些大思想可以偶尔拿来装一下,一直讨论则是无益的,脚踏实地的学习知识点才原创 2016-02-23 10:19:53 · 6378 阅读 · 0 评论 -
对三层架构的浅层理解
最近做项目一直被扩展性弄的焦头烂额,经常是加一个功能就要修改好多代码,直到最后代码一团乱麻再也不能维护了。所以决定花些时间学习一下传说中的三层架构,由于是刚刚接触,文章写得不是很上档次,只适合架构小白作为一个入门级别的东西。麻雀虽小,五脏俱全,我们先从为什么要三层架构谈起,然后介绍一下什么是三层架构,最好说明三层架构的设计要点。先说为什么。三层结构是一个上档次的名词,一般刚学程序的时候不会原创 2016-03-22 21:37:50 · 716 阅读 · 0 评论 -
链表的艺术——Linux内核链表分析
引言:链表是数据结构中的重要成员之一。由于其结构简单且动态插入、删除节点用时少的优点,链表在开发中的应用场景非常多,仅次于数组(越简单应用越广)。但是,正如其优点一样,链表的缺点也是显而易见的。这里当然不是指随机存取那些东西,而是由于链表的构造方法(在一个结构体中套入其同类型指针)使得链表本身的逻辑操作(如增加结点,删除结点,查询结点等),往往与其应用场景中的业务数据相互混杂。这导致我们每原创 2016-04-15 20:19:03 · 1406 阅读 · 0 评论 -
#include与using的区别
这是一个C++里的老问题了,就像sizeof与strlen一样,困扰着很多初级程序员,所以估计看这篇文章的读者大都也是刚入门C++不久的新手,所以就不谈那些大道理了,而且那些文章已经不少了。本文将从一个个程序试验入手,让大家对问题有个比较充分感性认识。也希望大家不要手懒,有条件还是跟着一步一步做的好。毕竟学程序,敲代码的过程谁也替不了你。让我们先看一个简单的:(命名为main.cpp)原创 2016-04-17 20:37:31 · 5989 阅读 · 3 评论