最新 | 最热门 | 最高评价

+0  How could it possible to assign an integer to string?

Tag: develope | c++
Robin Dong 发于 2018年10月22日 11:12 | 点击: 175 | 展开摘要
The snippet below could be compiled and run:

#include <map>
#include <string>
#include <iostream>

using namespace std;

int main(void) {
std::map<std::string, std::string> hmap;
hmap["a"] = "appl

查看全文: http://www.udpwork.com/item/17161.html

+0  Move semantics in C++11

Tag: develope | c++11
Robin Dong 发于 2018年10月19日 15:18 | 点击: 278 | 展开摘要
After studying an example for Move Semantics of C++11, I write a more complete code snippet:

#include <iostream>

using namespace std;

class Intvec {
public:
explicit Intvec(size_t num = 0)
: m_size(num), m_data(new int[

查看全文: http://www.udpwork.com/item/17157.html

+0  [翻译]15个最常用的GCC编译器参数

Tag: C++
鸟窝 发于 2018年08月28日 18:35 | 点击: 487 | 展开摘要
原文: 15 Most Frequently Used GCC Compiler Command Line Options 以及评论中大家提供的一些参数。

GCC编译器是一个日常流行的 C 编译器, 很多Linux的发布版本中都带有这个编译器。这篇文章列举了一些最常用的编译参数。

本文中使用下面的C语言实现的例子:

1
2
3
4
5
6
7

#include<stdio.h>

int main(void)
{
printf("\n The Gee

查看全文: http://www.udpwork.com/item/17039.html

+0  炮打TCP – 关于一而再再而三的粘包拆包问题的大字报

Tag: C/C++语言编程 | Computer System
ideawu 发于 2018年06月13日 15:05 | 点击: 613 | 展开摘要
TCP 所谓的粘包和拆包问题,是技术圈里最奇葩的问题之一!

一而再,再而三,就跟傻逼的中国球迷支持中国足球队一样,前赴后继。有时候同一个人多次在犯同一个错误,有时候是前脚一个犯错了后脚又来一个还犯同样的错。即使是最优秀的程序员,也会在这个问题上面栽跟头,思维甚至很难转过弯,很久才能意识到自己的错误。而低水平的程序员就更不用说了,很多人到死都没有理解这个错误并解决掉,只是逃掉了而已。

我们固然可以认为原因是某些人学艺不精,但那么多的人,其中包括无数的优秀程序员在 TCP 粘

查看全文: http://www.udpwork.com/item/16902.html

+0  C函数中形参传递方式的差别

Tag: C/C++ | 计算机系统
止戈 发于 2018年06月10日 00:14 | 点击: 78 | 展开摘要
C函数中的形式参数可以是基本类型变量名,构造类型变量名和指针类型变量名。对于不同的形式参数,其传递参数的方式不同,总体来说分成两种:按值传递和按地址传递。

当形参是基本类型变量名时,采用按值传递方式;当形参是指针类型变量名或者构造类型变量名时,采用按地址传递方式。

下面通过两个相似的程序说明二者的区别:

//程序一:按地址传递参数
#include <stdio.h>
swap(int *x,int *y){
int t=*x; *x=*y; *y

查看全文: http://www.udpwork.com/item/17137.html

+0  程序员练级攻略(2018) 与我的专栏

Tag: 技术读物 | 杂项资源 | C++ | Java | Javascript | Linux | Programmer | Python | React | Unix | Web
陈皓 发于 2018年05月29日 12:38 | 点击: 201 | 展开摘要
写极客时间8个月了,我的专栏现在有一定的积累了,今天想自己推荐一下。因为最新的系列《程序员练级攻略(2018)版》正在连载中,而且文章积累量到了我也有比较足的自信向大家推荐我的这个专栏了。推荐就从最新的这一系统的文章开始。

2011年,我在 CoolShell 上发表了 《程序员技术练级攻略》一文,得到了很多人的好评(转载的不算,在我的网站上都有近1000W的访问量了)。并且陆续收到了一些人的反馈,说跟着这篇文章找到了不错的工作。几年过去,也收到了好些邮件和私信,希望我把这

查看全文: http://www.udpwork.com/item/17009.html

+0  API设计原则 – Qt官网的设计实践总结

Tag: C/C++语言 | 技术读物 | 程序设计 | 系统架构 | API | api-design | API设计 | C++ | Coding | Design | Programmer
李 鼎 发于 2017年07月25日 14:16 | 点击: 758 | 展开摘要
(感谢好友 @李鼎 翻译此文)

原文链接:API Design Principles – Qt Wiki

基于Gary的影响力上 Gary Gao 的译文稿:C++的API设计指导

译序

Qt的设计水准在业界很有口碑,一致、易于掌握和强大的API是Qt最著名的优点之一。此文既是Qt官网上的API设计指导准则,也是Qt在API设计上的实践总结。虽然Qt用的是C++,但其中设计原则和思考是具有普适性的(如果你对C++还不精通,可以忽略与C++强相关或是过于细节

查看全文: http://www.udpwork.com/item/16371.html

+0  如何重构“箭头型”代码

Tag: C/C++语言 | 程序设计 | 编程语言 | Code Review | Programming | Refactory
陈皓 发于 2017年04月05日 18:07 | 点击: 1280 | 展开摘要
本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得很多东西可以从一个简单的东西出发,到达本质,所以,我觉得有必要在这里写一篇的文章。不一定全对,只希望得到更多的讨论,因为有了更深入的讨论才能进步。

文章有点长,我在文章最后会给出相关的思考和总结陈词,你可以跳到结尾。

所谓箭头型代码,基本上来说就是下面这个图片所示的情况。

查看全文: http://www.udpwork.com/item/16198.html

+0  浅谈移动应用的跨平台开发工具(Xamarin和React Native)

Tag: 技术读物 | 编程工具 | Android | C++ | Facebook | iOS | Javascript | ReactNative | Xamarin | 开发工具 | 移动开发
jnj 发于 2016年06月06日 12:35 | 点击: 875 | 展开摘要
谈移动应用的跨平台开发不能不提HTML5,PhoneGap和Sencha等平台一直致力于使用HTML5技术来开发跨平台的移动应用,现在看来这个方向基本算是失败的,基于HTML5的移动应用在用户体验上与原生应用仍然存在着明显的差距。

与上述HTML5平台不同,Xamarin和React Native通过各自的方式来实现跨平台。Xamarin基于Mono框架将C#代码编译为原生平台代码,React Native则是在UI主线程之外运行一个JavaScript线程,两者呈现给用户

查看全文: http://www.udpwork.com/item/15541.html

+0  Xcode 如何让 Objective C 项目链接 C++ 静态库

Tag: C/C++语言编程 | Cocoa | MacOSX
ideawu 发于 2016年03月08日 18:50 | 点击: 1040 | 展开摘要
如果你的 OC 项目引入了一个 C++ 静态库, 那么编译时会提示找不到 vtable 之类的的错误, 因为 OC 是 C 语言, 无法识别 C++ 的静态库, 解决方法是让 Xcode 认为你在使用 C++/Objective-C++, 假装也行.

所以解决方法是:

往项目里添加一个.cpp文件, 文件是空的.

将 main.m 改名为 main.mm

Related posts:
Objective-C 单引号中包含4个字符

Objective-C 对二进制数据

查看全文: http://www.udpwork.com/item/15312.html

+0  Cuckoo Filter:设计与实现

Tag: C/C++语言 | 数据库 | 程序设计 | 趣味问题 | Algorithm | filter | hashing | 海量数据
Leo 发于 2015年09月02日 09:18 | 点击: 1861 | 展开摘要
(感谢网友 @我的上铺叫路遥 投稿)

对于海量数据处理业务,我们通常需要一个索引数据结构,用来帮助查询,快速判断数据记录是否存在,这种数据结构通常又叫过滤器(filter)。考虑这样一个场景,上网的时候需要在浏览器上输入URL,这时浏览器需要去判断这是否一个恶意的网站,它将对本地缓存的成千上万的URL索引进行过滤,如果不存在,就放行,如果(可能)存在,则向远程服务端发起验证请求,并回馈客户端给出警告。

索引的存储又分为有序和无序,前者使用关联式容器,比如B树,后者使用哈希

查看全文: http://www.udpwork.com/item/14563.html

+0  经典的 TCP socket 读取报文错误

Tag: C/C++语言编程 | 网络编程
ideawu 发于 2015年07月16日 16:41 | 点击: 1356 | 展开摘要
面试了很多做了多年网络编程的人, 从TCP socket中读取报文这项基本技能, 许多人都做不对. 经典的错误用法是:

char buf[1024]; // 1024或者更大
read(sock, buf, sizeof(buf));
if(parse(buf) == 1){
// 报文解析完毕
}else{
// 不是一个完整的报文, 丢弃
}

这是非常经典的错误! 没有任何文档或者手册表明, read()会读到*完整*的报文, 对于read()函数来说

查看全文: http://www.udpwork.com/item/14408.html
|<<<1234567>>>| 一共15页, 170条记录