【C++常用的STL及方法 (中)】教程文章相关的互联网学习教程文章

C++List、iterator与erase()方法的使用

erase()方法是删除iterator指定的节点 但是要注意的是在执行完此函数的时候iterator也被销毁了 这样的话关于iterator的操作就会报错 以下是关于erase()方法的正确使用 正确使用方法1 std::list< int> List; std::list< int>::iterator itList; for( itList = List.begin(); itList != List.end(); ) { if( WillDelete( *itList) ) { itList = List.erase( itL...

【C/C++编译器】MinGW64安装方法【图】

有两种安装方式,一种是在线安装,一种是离线安装。 两种方法 在线安装离线安装 在线安装 如果赶时间的话请直接移步离线安装,当然如果你还是想知道如何在线安装也可以继续往下看。 在线安装(不推荐): 需要去官网下载MinGW的exe文件,一直点下一步即可,缺点是如果不翻墙的话网速特别特别特别慢。需要等很长时间。 MinGW官网:官网 下载最新的即可。下载好解压后是一个exe安装文件,如图 双击点击安装: 然后如果你的电脑是...

C++ protobuf 将从txt读取到的数据赋值到proto上方法【代码】

假如我们有一个问题是关于:存储一个人的名字(name)以及唯一表示符(id)和邮箱(email)以及它的电话号码(number)和此电话号码所在的类型(PhoneType),主人的性别(sex)。并且需要将其保存在二进制文件中或者txt文件中,如果需要还需要将其从二进制文件中或者txt文件中读取,我们如何使用protobuf去实现它呢? 首先我们需要创建一个addressbook.proto文件,文件中的内容为: syntax = "proto2"; package tutorial; //把proto文件转化成c...

C++调用Go方法的字符串传递问题及解决方案

现象 在一个APP技术项目中,子进程按请求加载Go的ServiceModule,将需要拉起的ServiceModule信息传递给Go的Loader,存在C++调用Go方法,传递字符串的场景。 方案验证时,发现有奇怪的将std::string对象的内容传递给Go方法后,在Go方法协程中取到的值与预期不一致。 经过一段时间的分析和验证,终于理解问题产生的原因并给出解决方案,现分享如下。 背景知识Go有自己的内存回收GC机制,通过make等申请的内存不需要手动释放。 C++中为...

【C++学习笔记】超详细C++注释的使用方法,不赶紧收藏就错过啦!【图】

注释是编译器忽略但对于程序员非常有用的文本。 注释通常用于批注代码以供将来参考。 在C++中,使用注释有三种方法。? 一、单行注释即(两个斜杆)/ /使用英文状态下的输入法输入两斜杠即可(注意是从上到下从右边斜向左边,//(点号附近)注释以//开始,直到行末为止。例如:实例 #include <iostream> using namespace std; int main() { // 这是一个注释 cout << "Hello World!"; return 0; } 也可以放在语句后面:实例 #include ...

C++中sort()函数使用方法【代码】【图】

一.sort函数 1.sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考虑! 2.sort函数的模板有三个参数: void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); (1)第一个参数first:是要排序的数组的起始地址。 (2)第二个参数last:是结束的地址(最后一个数据的后一个数据的地址) (3)第三个参数com...

C++第四十八篇 -- 字符串分离方法【代码】【图】

举例:Test_Bluetooth.exe -param_split Test_Bluetooth.cpp #include "pch.h" #include <iostream> using namespace std;void help() {cout << "help" << endl; }int main(int argc, char* argv[]) {if (argc == 2) {if (strcmp(argv[1], "-help") == 0) {help();}else if (strcmp(argv[1], "-param_split") == 0) {char a[] = "-param1=aaa";char* param_right;char *ptr = strtok_s(a, "=", &param_right);cout << "a_left=" <<...

C++-STL中set的常用方法【代码】

关于C++-STL-set的常用函数和方法 set模板类在头文件 中使用前需要先引入头文件。 set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还确保根节点左子树的高度与右子树的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重...

《c++类的初始化列表》——使用场景和使用方法【代码】

定义 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。 构造函数列表的初始化方式不是按照列表的的顺序,而是按照变量声明的顺序同时初始化显隐数据成员 从概念上来讲,构造函数的执行可以分成两个阶段,初始化阶段和计算阶段,初始化阶段先于计算阶段. 初始化阶段 所有类类型(class type)的成员都会在初始化阶段初始化,即使该成员没...

结构体的各种使用方法详细讲解-c\c++【图】

结构体 什么是结构体结构体就是自己自定义的一种"数据类型"使用多个基本数据类型或者其他结构组成的一种新的"数据类型"C语言结构体(Struct)从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由 int、char、float 等基本类型组成的。你可以认为结构体是一种聚合类型。 在实际开发中,我们可以将一组类型不同的、但是用来描述同一件事物的变量放到结构体中。为什么要使用结构体表示一些复杂的信息比如学生的各种"成...

C++ 7种排序方法代码合集【代码】【图】

class Solution { public:/******************************************************************** 直接插入排序 数组前面维持一个有序区,每次从后面的无序区里选一个数插入到前面的有序区,直至全部已排序 *********************************************************************/ void insertsort(vector<int>& nums) {for (int i = 1; i < nums.size(); i++){//找到插入位置int insertpos = 0, insertval = nums[i];while (n...

VS2013 c++ 生成和调用DLL动态链接库(.def 方法已验证OK)【图】

转载:https://blog.csdn.net/zhunianguo/article/details/52294339 .def 方法 创建动态库方法: 创建动态库是生成?.dll .lib 两个个文件 文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLGenerator 应用程序类型:DLL ?附加选项:空项目? 建立源文件dllgenerator.cpp(不需要主函数,只写你需要动态调用的函数)[cpp]?view plain?copy ? ? ? ? // 整数加法和乘法 int Add(int a, int b){ return a + b; } int ...

[C/C++] CMake使用方法(详细)【代码】

cmake使用方法(详细)cmake 帮助文档 技巧 命令行选项-D 编译选项add_compile_options add_compile_definition option & add_definition 使用方法语法说明列表和字符串 变量 控制流 引号,字符串和转义 正则表达式 常用命令cmake_minimum_required project set message mode关键字 aux_source_directory 查找源文件 add_library add_subdirectory include_directories 添加头文件目录 link_directories 添加需要链接的库文件目录 ...

GMP-C/C++(大数库)使用方法

The GNU Multiple Precision Arithmetic Library(GNU 高精度算数库)是一个用于任意精度算术的免费库,可处理带符号整数,有理数和浮点数。除了运行GMP机器中的可用内存所暗示的精度外,对精度没有实际限制。GMP具有丰富的功能集,并且这些功能具有常规接口。 下载&安装:安装前准备:(安装m4)sudo apt install m4下载解压:wget https://gmplib.org/download/gmp/gmp-6.2.0.tar.lz -P ~/GMPcd ~/GMP  tar -xvJf ~/GMP/gmp-6...

使用Frida神器轻松实现hook C/C++方法【代码】【图】

目的:通过frida hook native方法,获取到对应方法的参数: c++ 代码:extern "C" JNIEXPORT jstring JNICALL Java_os_sdk_fridademo_MainActivity_stringFromJNI(JNIEnv *env,jobject /* this */) {std::string hello = "Hello from C++";const char* key = "king";jsb_set_key(key);return env->NewStringUTF(hello.c_str()); }编译完成之后,运行到设备,我这里用的是蓝叠虚拟机: 在ida中打开对应的so库,找到导出的方法名...