随笔分类 -  B.1.1-C/C++ 基础

学习C/C++过程中整理的一些知识点。
摘要:C++标准库本身没有直接提供读写锁,但C++11引入了一些工具,例如std::shared_mutex(C++14引入的,C++17之前的标准库中可能不支持)以及相关的读锁定(std::shared_lock)和写锁定(std::unique_lock)机制,用于实现读写锁的功能。 下面是一个简单的 阅读全文
posted @ 2023-12-29 18:25 He_LiangLiang 阅读(1042) 评论(0) 推荐(0) 编辑
摘要:map map是一个有序的关联容器,它存储的元素是键值对(key-value pair),并且按照键的顺序进行排序。 map内部使用红黑树实现,这使得它可以在平均情况下实现O(log n)的插入、删除和查找操作。 例如,如果你想存储一些学生的姓名和对应的年龄,并按照年龄从小到大排序,那么map是一个 阅读全文
posted @ 2023-12-24 08:33 He_LiangLiang 阅读(48) 评论(0) 推荐(0) 编辑
摘要:查找某个文件里面的文本内容: find /usr/local/include/ -name "*.h" | xargs grep "LoadFile" 阅读全文
posted @ 2023-12-22 16:55 He_LiangLiang 阅读(8) 评论(0) 推荐(0) 编辑
摘要:C++标准库 std::string 的 find_first_not_of 方法介绍: 例如: stra.find_first_not_of(s_fmt_a) 在字符串 stra 中找到第一个 不在 s_fmt_a 字符串中出现过的字符。 stra = "abc", abc 字符 都在 s_fmt 阅读全文
posted @ 2023-12-21 16:43 He_LiangLiang 阅读(306) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <sys/syscall.h> #include <unistd.h> #include <pthread.h> void *printThreadId(void *arg) { pid_t tid = syscall(SYS_gettid); 阅读全文
posted @ 2023-12-19 14:21 He_LiangLiang 阅读(346) 评论(0) 推荐(0) 编辑
摘要:std::make_pair 和 std::make_tuple 都是用于创建对应类型的对象的 C++ 标准库函数模板。 它们的区别主要在于它们所处理的数据类型和返回类型。 std::make_pair: std::make_pair 用于创建一个 std::pair 对象,std::pair 是一 阅读全文
posted @ 2023-12-13 14:52 He_LiangLiang 阅读(167) 评论(0) 推荐(0) 编辑
摘要:在C++中,预处理器提供了一些符号和运算符,这些符号在宏定义中有特殊的含义。 以下是一些常见的符号: #:字符串化运算符,用于将宏参数转换为字符串。 #define STRINGIZE(x) #x std::cout << STRINGIZE(Hello); // 输出 "Hello" ##:连接运 阅读全文
posted @ 2023-12-12 15:17 He_LiangLiang 阅读(29) 评论(0) 推荐(0) 编辑
摘要:C++ 用 std::get<> 访问元组 #include <iostream> #include <tuple> int main() { // Creating a tuple std::tuple<int, double, std::string> myTuple(42, 3.14, "He 阅读全文
posted @ 2023-12-12 14:55 He_LiangLiang 阅读(157) 评论(0) 推荐(0) 编辑
摘要:从 g++ 4.8 版本开始,该编译器默认支持 C++11 标准。 因此,g++ 8.3.1 的版本将完全支持 C++11 特性和语法。您可以使用 -std=c++11 编译选项来指定编译器使用 C++11 标准进行编 C++11 是 C++ 语言的一个重要版本,引入了许多新的特性和改进,包括自动类 阅读全文
posted @ 2023-07-06 14:27 He_LiangLiang 阅读(45) 评论(0) 推荐(0) 编辑
摘要:一个C++11的线程函数 #include <iostream> #include <thread> #include <chrono> void printNumbers() { for (int i = 1; i <= 100; ++i) { std::cout << i << std::end 阅读全文
posted @ 2023-07-06 14:04 He_LiangLiang 阅读(7) 评论(0) 推荐(0) 编辑
摘要:这是一段正则表达式示例,筛选出sql语句里面用到的表。 主要是筛选 "from table_name "这样的字符串,然后把table_name选出来 #!/usr/bin/env python # -*- coding: utf-8 -*- import re text1 = """T2.NOTI 阅读全文
posted @ 2023-06-26 17:42 He_LiangLiang 阅读(11) 评论(0) 推荐(0) 编辑
摘要:指针作为参数传递的时候,需要用指针的指针 作为参数 eg: 1 #include <iostream> 2 using namespace std; 3 4 int* p; 5 void func(int** a){ 6 *a = new int(5); 7 } 8 9 int main() 10 阅读全文
posted @ 2022-08-29 22:15 He_LiangLiang 阅读(115) 评论(0) 推荐(0) 编辑
摘要:参考文章:https://www.cnblogs.com/ay-a/p/10995380.html gdb 调试 带参数的程序 eg1:直接带参数 gdb --args ./testprg arg1 arg2 eg2:参数在某个文件里面 gdb --args ./testprg --config=a 阅读全文
posted @ 2022-02-22 13:41 He_LiangLiang 阅读(82) 评论(0) 推荐(0) 编辑
摘要:/** * Tencent is pleased to support the open source community by making Tars available. * * Copyright (C) 2016THL A29 Limited, a Tencent company. All 阅读全文
posted @ 2021-12-07 15:01 He_LiangLiang 阅读(1413) 评论(0) 推荐(0) 编辑
摘要:引用计数是智能指针的一种通用实现技术,基本原理如下: 在每次创建类的新对象时,初始化指针并将引用计数置 1; 当对象作为另一对象的副本而创建时(复制构造函数),复制对应的指针并将引用计数 +1; 当对一个对象进行赋值时,赋值操作符 = 将左操作数所指对象的引用计数 -1,将右操作数所指对象的引用计数 阅读全文
posted @ 2021-12-03 14:02 He_LiangLiang 阅读(91) 评论(0) 推荐(0) 编辑
摘要:1319. 连通网络的操作次数 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意 阅读全文
posted @ 2021-01-23 11:48 He_LiangLiang 阅读(114) 评论(0) 推荐(0) 编辑
摘要:初识 lambda 函数 (匿名函数) #include <iostream> using namespace std; int main() { int girls = 3, boys = 4; auto totalChild = [](int x, int y )->int{return x+y 阅读全文
posted @ 2020-12-13 23:52 He_LiangLiang 阅读(164) 评论(0) 推荐(0) 编辑
摘要:函数原型:string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigne 阅读全文
posted @ 2020-09-04 09:05 He_LiangLiang 阅读(1338) 评论(0) 推荐(0) 编辑
摘要:C++ 字符串去除两端空格trim()经常用到。这里记录一下,方便自己使用。 //C++ 去字符串两边的空格 void trim(string &s) { if (s.empty()) { return ; } s.erase(0,s.find_first_not_of(" ")); s.erase 阅读全文
posted @ 2020-09-02 09:18 He_LiangLiang 阅读(3848) 评论(0) 推荐(0) 编辑
摘要:循环引用: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下: #include <string> #include <iostream> #include <boost/shared_ptr.hpp> #include <boost/weak 阅读全文
posted @ 2020-08-28 09:48 He_LiangLiang 阅读(185) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示