C++STL容器 – std::map删除指定元素
1 for循环遍历std::map删除指定元素 1.1 第一种方式 #include <iostream> #include <map> #include <string> void PrintMap(const std::map<int, std::str…
- C++
- 2022-02-25
C++STL容器 – std::vector容器修改、元素操作总结 push_back,emplace_back,emplace,insert,erase,pop_back,clear,resize,swap
1 std::vector操作函数 1.1 push_back push_back的作用主要是将给定值添加到容器末尾。 pusk_back在执行压入操作时需要初始化一个新的元素,然后再将给定值拷贝到新元素中。 std::vector<int> myVector; PrintVector(…
- C++
- 2022-02-25
C++STL容器 – std::vector元素访问方式总结
1 std::vector元素访问方式 std::vector提供多种方式访问容器中的元素。std::vector的at函数,[]操作符,front函数,back函数都可以对std::vector的元素进行读写操作。 1.1 at函数 访问指定索引元素,并在访问时进行索引边界检查。如果索引越界,将抛…
- C++
- 2022-02-22
C++STL容器 – std::vector构造方式与分配值方式总结
1 std::vector std::vector是可动态调整大小的序列容器,可以根据需要自动进行增加内存或者减少内存。相比于静态数组,std::vector占用更多的内容空间,主要是为了分配更多的内存空间用于未来元素增加所带来的内存消耗。一般来说,std::vector的所占内存大小不会在每次压入…
- C++
- 2022-02-22
C++ – 将一维数组/二维数组/三维数组作为函数参数传递给函数
在本文中将详细说明如何将一维数组、二维数组、三维数组作为函数参数传递给函数进行处理。 在C++中,一维数组可以理解为包含n个数字的内存块,例如int a[3]表示数组a为包含3个int类型数字的内存块; 二维数组可以理解以一维数组为元素的一维数组,例如2行3列的二维数组可以理解为两个元素的一维数组,…
- C++
- 2022-01-25
C++ – 使用宏区分不同系统平台、不同编译器、不同编译模式等编译期宏使用总结
1 区分不同系统平台 //----------------------------- #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) #ifdef _WIN64 // win64 #else…
- C++
- 2022-01-25
C++ – 使用Crypto++/CryptoPP加解密库对字符串或者文件进行AES256加密
1 AES加密算法 Crypto++/CryptoPP加解密库官网:https://www.cryptopp.com/ 在写桌面程序的时候一些自定义的数据文件不可避免的需要放在本地,通常这种数据文件保存了一些敏感信息,所以必须想办法对其进行加密。然后在程序中对这种数据文件进行解密然后读取正确的内容。…
- C++
- 2022-01-14
C++ – 将std::vector中的数值拷贝到数组中
1 将std::vector中的数值拷贝到数组中 在程序实际运行过程中,为了防止数组越界经常使用stl 容器,但是在做数据交换时经常需要传递数据流的指针,这个时候就需要将stl 容器中的数据拷贝到数组中,当然,只针对int float double这种常规类型的数据。 #include <io…
- C++
- 2022-01-10
Duilib – Label控件文本换行
1 Duilib Label控件文本换行 1.1 Label控件不自动换行的问题 Duilib的Label控件在默认情况下是不支持文本换行的,比如在界面xml中有下面的Label控件定义: <Label height="300" name="Label_Test" text="None" al…
- Duilib
- 2022-01-06
C++ – 求解std::vector中topk数值以及topk数值对应的索引
1 C++获取vector中topk数值以及topk数值对应的索引 1.1 思路 topk问题是日常应用经常会遇到的问题,在python中对于多分类问题,经常需要输出top5的标签,在C++中,topk问题也是经常面对的问题。 比如给定一个std::vector<float>的容器,需要…
- C++
- 2022-01-06
C++11 – 使用std::codecvt进行字符编码转换需要注意的时间效率问题
1 使用std::codecvt进行Unicode转UTF8字符编码的时间效率测试 通常情况下,使用std::codecvt进行Unicode转UTF8编码会使用以下的函数: std::string Std_UnicodeToUTF8(const std::wstring& unicodeS…
- C++
- 2021-12-21
C++11 – 使用std::thread,std::shared_future,std::promise并行化/多线程化for循环,提升处理速度
1 应用场景 在实际的应用过程中,经常会遇到一个大数量的for循环耗时的问题,比如说出现了一个10000000次的for循环,每一次循环处理业务逻辑需要耗时1ms,如: for (int i = 0; i < 10000000; ++i) { dosomething() } 那么整个for循环…
- C++
- 2021-12-17