C++/STL
文章平均质量分 90
wsqyouth
鹅厂码农 公众号:泡泡思考笔记
展开
-
双指针法总结之倚天屠龙
双指针技巧分为两类:一类是“快慢指针(倚天剑)”,主要解决链表中的问题,比如典型的判定链表中是否包含环;一类是“左右指针(屠龙刀)”,主要解决数组/字符串中的问题,比如二分搜索。原创 2022-04-17 22:23:06 · 988 阅读 · 0 评论 -
vector的erase失效问题
VS和CGwin的实现效果还不一样,这里先记录下问题及解决方法。欢迎和大家一起探讨。 vector容器erase操作后iterate失效真相一、VS环境下erase代码分析代码:for (auto iter = vec.begin(); iter != vec.end(); ++iter) { if (3 == *iter) { ...原创 2018-09-05 10:54:28 · 2220 阅读 · 1 评论 -
vector相关操作
每次编程题输入输入测试vector时,都要重写测试函数,实在是太麻烦了,整理记录一个吧。一、一维vector初始化、打印#include <vector>#include <iostream>using namespace std;void printVector(vector<int > vec){ for (vecto...原创 2018-09-05 21:35:17 · 274 阅读 · 0 评论 -
某公司笔试编程题
参加了某公司编程题,这些题都来自牛客网,记录总结吧!一、蛇形矩阵题目描述蛇形矩阵是有1开始的自然数依次排列成的一个上三角矩阵. 接口说明 void GetResult(int Num, int* pResult);输入参数:int Num :输入的正整数N输出参数:int *pResult: 指向放蛇形矩阵的字符串指针指针指向的内存区域保证有效样例输入...原创 2018-09-06 16:06:01 · 408 阅读 · 0 评论 -
Boost程序库入门学习
优秀的程序员要能够知其所以然,而不是重复的造轮子,近期目标是学习优秀的第三方库,同时尝试使用C++11/14新特性,然后吸取精华用到项目中去,加油~参考书籍:罗剑锋写的《Boost程序库完全开发指南》和《Boost程序库探秘》,前者是一个大体的介绍,后者是针对一些诸如模板元编程等高级特性做了深入的探讨。一、Boost库概述Boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的C...原创 2018-09-30 20:35:59 · 15591 阅读 · 2 评论 -
C++ 重载运算符和重载函数
参考:http://www.runoob.com/cplusplus/cpp-overloading.html https://www.cnblogs.com/CaiNiaoZJ/archive/2011/08/12/2136598.html素材整理: C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。运算符重载和函数重载体现了面向对象...原创 2018-10-04 21:42:45 · 1877 阅读 · 0 评论 -
2018秋招C/C++面试题总结
博主从8月中旬开始大大小小面试了十几家公司,至今也许是告一段落吧,希望后面会有好结果,因此总结记录一些C/C++方向常见的问题。和大家一起学习!参考了互联网的各种资源,自己尝试归类整理,谢谢~一、C和C++的区别是什么?C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C中函数不能进行重载,C++函数可以重载C++在C的基础上增添类,C是一个结构化语言...原创 2018-09-22 18:57:43 · 27401 阅读 · 17 评论 -
C++11/14系列学习
十一假期一直在看C++11新特性,比较出名的书《C++ Primer Plus》专门有一个章节来讲解,《C++ Primer》则将C++11的新特性融入到各个章节来学习。在假期的最后一天无意中发现实验楼有一个专门的教程来讲解,算是念念不忘,必有回响吧,特此整理出来,和大家一起学习。作者网址:https://www.shiyanlou.com/courses/605,非常感谢!注:本文并没有智...转载 2018-10-07 17:00:58 · 7168 阅读 · 0 评论 -
ProtoBuf3安装与使用
本文参考自官方文档以及大佬们博客,实测完成。一、ProtoBuf在Ubuntu环境下安装参考:官方安装文档安装以下工具集sudo apt-get install autoconf automake libtool curl make g++ unzip在线下载网址:https://github.com/protocolbuffers/protobuf/releases/,然后解压并...转载 2018-11-08 17:08:16 · 11880 阅读 · 0 评论 -
C++封装互斥锁
最近在看线程池这一块的知识点,其中遇到了使用C++类封装互斥锁的办法,特此记录下。参考书籍:《提高C++性能的编程技术》第二章一、问题由来有时我们会遇到两个进/线程共同使用同一个资源的情况,这个资源就称为临界区。临界区是指某一时间只能有一个线程执行的一个代码段。示例:get_the_lock()//临界区的开始....//被保护的计算//临界区的结束release_the_lo...原创 2018-11-22 22:34:41 · 1894 阅读 · 0 评论 -
C++11智能指针
在看陈硕的《Linux多线程服务器编程》时谈及到了智能指针,这里利用对比分析法将智能指针相关知识进行整理,知识一定要有输出才能算是自己的,不是吗?文章参考:http://blog.guoyb.com/2016/08/02/cpp11-5/https://www.geeksforgeeks.org/auto_ptr-unique_ptr-shared_ptr-weak_ptr-2/http...原创 2019-04-14 21:13:56 · 2357 阅读 · 1 评论 -
C++前向声明和不可拷贝类
五一假期,记录几个关于C++的知识点吧,主要学习自《Linux多线程服务器编程》https://stackoverflow.com/questions/4757565/what-are-forward-declarations-in-chttps://zh-google-styleguide-neroldy.readthedocs.io/zh_CN/latest/google-cpp-sty...原创 2019-05-03 22:52:12 · 415 阅读 · 1 评论 -
google protobuf (c++) 学习
probuf是goole推出的微型RPC框架,这里记录下安装测试。参考文章:Google Protocol Buffers浅析(一)一、Ubuntu 18.04安装 C++ Protocol首先参考官方README文档进行安装:前提 sudo apt-get install autoconf automake libtool curl make g++ unzip当然可以在如下...原创 2019-06-13 19:51:41 · 3826 阅读 · 4 评论 -
C++开发之stringstream学习
文章转自:https://www.2cto.com/kf/201701/589841.htmlC++开发之ostringstream、istringstream、stringstream用法浅析ostringstream : 用于执行C风格字符串的输出操作。istringstream : 用于执行C风格字符串的输入操作。stringstream : 同时支持C风格字符串的输入输出操作...转载 2019-06-14 16:00:56 · 521 阅读 · 0 评论 -
Ubuntu18.04源码安装PostgreSQL11
最近在看项目源码时候,发现使用了PostgreSQL,发现思路非常之清晰,安装测试下吧一、Ubuntu18 网络设置不生效问题本次采用的Ubuntu环境为18.04,Ubuntu18和之前的版本不太一样,我这里出现了网络设置总是出错的问题,最后找到了这篇文章Ubuntu Server 18.04 网络设置不生效的解决,思路是一样的。首先通过ifconfig查看网卡设置:我这里有两个网...原创 2019-06-19 22:16:35 · 3400 阅读 · 0 评论 -
剑指offer-难题记录
将最近几天遇到的难题,整理记录下来,以备复习! 记录两个有趣的网址CSDN排行第一博客和左耳朵陈浩关于fork一、正则表达式匹配本文参考:正则表达式题目描述请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”...原创 2018-08-28 16:58:33 · 374 阅读 · 0 评论 -
STL之堆操作
参考: https://blog.csdn.net/liu_sheng_1991/article/details/52298887 https://blog.csdn.net/li744831579/article/details/39023785一、概念STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据po...原创 2018-08-27 15:41:23 · 5433 阅读 · 0 评论 -
把数组排成最小的数
本文参考了: https://blog.csdn.net/fanzitao/article/details/7895344 https://www.nowcoder.com/profile/851211题目输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为32...原创 2018-08-27 12:10:34 · 257 阅读 · 0 评论 -
计算机网络《二》
第2章 传输媒体 2.1 简介传输媒体包括:数字信道和模拟信道2.1.1 数字信道可以直接传输数字信号。但二进制数据流变成数字信号前需要进行编码。例如:同轴电缆、短距离的双绞线、光纤数字信号的表达和传输低电平(例如:0v或者-15V)高电平(例如:+5v或者+15V)例如:需要传输1000100111,即8个码元(传输1Bi转载 2014-12-07 18:04:06 · 1671 阅读 · 0 评论 -
telnet 发送邮件
在cmd里输入telnet smtp126.com 25一般来说,如果mail.xxx.com存在,并且port:25有打开,就能连接成功。2.跟服务器打招呼helo smtp.126.com服务器应该返回250如果服务器smtp需要验证,进行第三步,否则到第四步3.输入auth login会一次提示你334 VXNlcm5hbWU6输入账号编码:原创 2014-12-06 23:23:54 · 870 阅读 · 0 评论 -
计算机网络笔记《一》
第1章 计算机网络概述1.1 计算机网络的产生和发展1.1.1 联机终端网络在1946年,世界上第一台数字计算机问世,但当时计算机的数量非常少,且非常昂贵。而通信线路和通信设备的价格相对便宜,当时很多人都很想去使用主机中的资源,共享主机资源和进行信息的采集及综合处理就显得特别重要了。1954年,联机终端是一种主要的系统结构形式,这种以单主机互联系统为中心的互联系统,即主机面向终端(转载 2014-12-07 18:02:05 · 2553 阅读 · 2 评论 -
计算机网络四
大三上结束之际,从网上找来一些关于计算机网络的知识作为总结,本文四篇笔记全部转自猪头任(博客地址:http://www.cnblogs.com/rppig/archive/2012/04/01/2429474.html),在这里谢过了,哈哈 随着便携笔记本和智能手机的普遍使用,人们希望不论在何时、何地都能够与任何人进行包括数据、语音、图像和视频等任何内容的通信。在这样的大背景下,无线网受到转载 2014-12-07 18:08:44 · 5889 阅读 · 0 评论 -
VC环境下window网络程序:UDP Socket程序
面向非连接的Socket编程,最近在学Windows网络编程,正好在做UDPsocket的程序,欢迎大家一起交流!纪念下2015年的五一假期原创 2015-05-03 21:30:19 · 3642 阅读 · 0 评论 -
大小端字节序的判断
最近要重新研究linux网络编程,首先都遇到这个问题,记录复习下吧~原创 2017-09-13 11:29:27 · 1144 阅读 · 0 评论 -
linux常见网络设置
下面总结记录下经常使用的与网络相关的命令,大部分需要root权限。原创 2017-10-18 20:04:08 · 634 阅读 · 0 评论 -
重载运算符与友元函数
本次博客 主要学习运算符重载和友元函数。其中 运算符重载能够将平时用于内置类型的变量的操作符(如+,-,*,/等)用于类对象; 友元这种C++机制使得非成员函数可以访问私有数据。原创 2017-08-30 21:26:51 · 6428 阅读 · 2 评论 -
关于类容易模糊的三个知识点
本次博客 主要复习三个模糊的知识点。其中 > 构造函数与析构函数的定义、声明与使用; > this指针作为隐含参数以及返回*this对象本身; > 在类中声明常量的两种方式。原创 2017-08-31 11:03:35 · 350 阅读 · 0 评论 -
STL之set的查增删
本文参考自徐晓鑫《后台开发》,记录之。概念: C++ STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树。 set是关联式容器,用来存储同一数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都是唯一,而且系统根据元素的值能自动进行排序。值得注意的是set中元素不能直接被改变,这也是本文标题中并...原创 2018-03-12 11:19:57 · 3221 阅读 · 0 评论 -
qt 使用记录
一、解决Ubuntu下QtCreator中不能输入中文的问题我的qt版本是qt5.9.2,qt creator 版本是qt4.3 解决方法: 1.安装fcitx-frontend-qt5sudo apt-get install fcitx-frontend-qt52.复制libfcitxplatforminputcontextplugin.so到qtcreator安装目录中...原创 2018-06-25 15:56:16 · 246 阅读 · 0 评论 -
二叉树相关代码学习记录
一、二叉树的遍历二叉树的基本遍历方法有: 前序遍历、中序遍历、后续遍历和层次遍历。 代码:#include &amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;lt;vector&amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;lt;q原创 2018-07-01 14:59:57 · 217 阅读 · 0 评论 -
STL学习笔记-容器array
本文参考《侯捷STL视频教程》以及博客: https://blog.csdn.net/mcyJacky/article/details/78570845 https://blog.csdn.net/sin_geek/article/details/51067874一、array容器array在头文件 中定义namespace std{ template...原创 2018-07-22 21:59:25 · 741 阅读 · 0 评论 -
C++11的新特性
本文全部参考自:http://www.cnblogs.com/wangqiguo/p/5635441.html,特此感谢。 开发环境: 1) C++shell 这个在线编译系统可以选择C++98、C++11、C++14特性。 2) Ubuntu gcc5.4版本以上,可以支持最新C++17特性,当然需要添加选项,比如: g++ test.cpp...转载 2018-08-11 11:42:00 · 231 阅读 · 0 评论 -
计算机网络三之以太网
第3章 以太网"以太网"这个名字起源于一个科学假说:19世纪科学家们普遍认为光是通过一种叫以太的物质传播的。时至今日,以太的存在早就被爱因斯坦狭义相对论否定了,而以太网却成了主流的计算机网络,依旧为人类传递着光和电磁信息。3.1概述1. 以太网诞生以太网是美国Xerox(施乐)公司的Palo Alto研究中心于1975年研制成功的,其核心技术起源于ALOHA网。20世纪70年代转载 2014-12-07 18:06:45 · 9086 阅读 · 0 评论