注:本文练习题均出自《Essential C++》第一章 练习1,1 从一个简单程序开始 1,将string头文件注释掉,重新编译这个程序,会发生什么事? 目前还没有发现会发生什么事。 2,将using namespace std注释掉,重新编译,会发生什么事? 3,将函数名main()改为my_m
转载
2021-08-04 17:30:03
352阅读
c++ 网络编程 标签(空格分隔): c++ [toc] 建立socket int socket(int domain,int type ,int protocol); domain 通常为 PF_INET ,表示互联网协议(TCP/IP) type 指定了Socket的类型 SOCK_STREAM
转载
2019-08-29 15:44:00
168阅读
2评论
并行基础std::thread 用于创建一个执行的线程实例,所以它是一切并发编程的基础,使用时需要包含 <thread> 头文件, 它提供了很多基本的线程操作,例如 get_id() 来获取所创建线程的线程 ID,使用 join() 来加入一个线程等等,例如:#include <iostream>#inc
转载
2022-09-12 20:32:20
66阅读
C++是一种强大的编程语言,它在C语言的基础上增加了面向对象编程(OOP)的特性。2025年,掌握面向对象编程思想对于开发大型、复杂的软
作者:寒小阳 四、表达式和基本语句4.1 运算符与复合表达式 首先非常重要的一个点是C/C++运算符的优先级问题,下图为总结的一张表,结合律特殊的运算符已经用黑体加粗标明出来了。 说实话,上表中的运算符优先级和结合律要熟记是非常困难的。虽说有表在,但是也不能每次都查表,所以我们在写程序的时候尽量要遵循后续规则: 如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级
转载
2017-09-10 22:27:00
83阅读
2评论
对于SOCKET在这里我不想究其历史,我只想说其时它是一种进程通讯的方式,简言之就是调用这个网络库的一些API函数就能实现分布在不同主机的相关进程之间的数据交换.
SOCKET中首先我们要理解如下几个定义概念:
一是IP地址:IP Address我想很容易理解,就是依照TCP/IP协议分配给本地主机的
转载
精选
2009-07-07 13:03:37
1682阅读
第1章 C++编程基础本章从一个小程序开始,通过它来练习C++的基本组成部分。1.1 如何撰写
原创
2022-07-07 17:07:50
281阅读
#任务1 ##代码 代码1 // 现代C++标准库、算法库体验 // 本例用到以下内容: // 1. 字符串string, 动态数组容器类vector、迭代器 // 2. 算法库:反转元素次序、旋转元素 // 3. 函数模板、const引用作为形参 #include <iostream> #incl ...
http://blog.csdn.net/lzx_bupt/article/details/6913151最近喜欢听大学听到的老歌,deutschland 德国世界杯时候流行的,据说不是主题曲但是比主题曲还要火。本篇进入难点了,mutex互斥锁概念,mutex=mutual exclusion的缩写,顺便说一句:以前老师都爱用缩写,也不跟同学说全称,这尼玛能理解深刻么!下文是用法:[cpp] view plaincopy#include<iostream>#include<pthread.h>//按规矩不能少usingnamespacestd;#defineNUM_TH
转载
2012-09-04 12:16:00
81阅读
2评论
http://blog.csdn.net/lzx_bupt/article/details/6910597在基础一上思考,如果线程调用的函数是在一个类中怎么办?答案是将该函数写成静态成员函数,如下模式就很符合C++的写作模式:[cpp] view plaincopy#include<iostream>#include<pthread.h>usingnamespacestd;#defineNUM_THREADS5classHello{public:staticvoid*say_hello(void*args)//除了多了static关键字,别无异样;{cout<&l
转载
2012-09-04 12:14:00
128阅读
2评论
http://blog.csdn.net/lzx_bupt/article/details/6910632线程会创建了,如何在线程调用函数时,传入参数呢?则应如下所示:[cpp] view plaincopy#include<iostream>#include<pthread.h>usingnamespacestd;#defineNUM_THREADS5void*say_hello(void*args){inti=*((int*)args);//对传入的参数进行强制类型转换,由无类型指针变为整形数指针,然后再读取;cout<<"helloin&qu
转载
2012-09-04 12:14:00
200阅读
2评论
文章目录1 内置的宏定义2 运行平台宏3 编译器宏4 调试类型宏5 代码C和C++内置
原创
2022-12-17 19:31:31
1456阅读
http://blog.csdn.net/lzx_bupt/article/details/6913039经过前面的几个例子,是不是还少个线程创建时属性参数没有提到,见下文示例:[cpp] view plaincopy#include<iostream>#include<pthread.h>#include<iostream>#include<pthread.h>usingnamespacestd;#defineNUM_THREADS5void*say_hello(void*args){cout<<"hellointhrea
转载
2012-09-04 12:15:00
69阅读
2评论
http://blog.csdn.net/lzx_bupt/article/details/6915117上篇说了下互斥量的用法,今儿说一下条件信号量的用法,这两种多线程变量的用法其实取决于情景,需要体会,见文:[cpp] view plaincopy#include<iostream>#include<pthread.h>//带头文件#include<stdio.h>usingnamespacestd;#defineBOUNDARY5inttasks=10;pthread_mutex_ttasks_mutex;//因为两个线程要修改一个全局变量,需要互斥量
转载
2012-09-04 12:16:00
75阅读
2评论
利用几篇文章简单记录下c与c++多线程编程基础入门的东西,每篇一个程序来记录,备忘。这些章节是由浅入深组织的,赖死狗!在注释中讲吧,佛楼米![cpp] view plaincopy#include<iostream>#include<pthread.h>//头文件是必须的,符合posix标准使程序可移植众多平台usingnamespacestd;#defineNUM_THREADS5void*say_hello(void*args)//线程的运行函数,必须void*,没说的表示返回通用指针、输入通用指针{cout<<"hello..."&
转载
2012-09-04 12:13:00
99阅读
2评论
一、引言模板是 C++ 最强大且最复杂的语言特性之一。它不仅支持泛型编程,使函数和类适用于多种类型,还为编译期计算、类型推导和元编程奠定了基础。在现代 C++ 中,模板与 STL、智能指针、并发库等紧密结合,是高性能、可扩展库开发的基础。本文将全面介绍 C++ 模板机制,从语法基础、类模板、函数模板、特化与偏特化到模板元编程(TMP),最后通过实战案例演示如何将模板用于解决复杂问题。二、模板基础2
概述在网络编程中,套接字(Socket)是一种用于进程间通信的接口。套接字是操作系统提供的一种抽象层,它允许不同计算机之间的进程通过网络进行通信。套接字实际上并不神秘,简单来说,套接字是连接网络中不同主机上应用程序的桥梁,通过套接字,应用程序可以发送和接收数据。套接字有多种类型,最常见的两种是:流式套接字和数据报套接字。流式套接字:基于TCP协议,提供面向连接的、可靠的数据传输服务。数据在传输过程
C++ 是一种高级编程语言,它在 1979 年由 Bjarne Stroustrup 在贝尔实验室开发,起初被称为“C with Classes”。C++ 是对 C 语言的扩展,增加
原创
2024-06-28 11:55:55
1524阅读
一、引言模板是 C++ 最强大且最复杂的语言特性之一。它不仅支持泛型编程,使函数和类适用于多种类型,还为编译期计算、类型推导和元编程奠定了基础。在现代 C++ 中,模板与 STL、智能指针、并发库等紧密结合,是高性能、可扩展库开发的基础。本文将全面介绍 C++ 模板机制,从语法基础、类模板、函数模板、特化与偏特化到模板元编程(TMP),最后通过实战案例演示如何将模板用于解决复杂问题。二、模板基础2