C语言中求质数的三种方法: 1.试除法,根据质数的定义,对每个数字no进行(2~no-1)的试除 2.排除偶数法,2的倍数(除2之外),都不是质数 3.排除偶数法的基础上,对奇数进行奇数的试除 4.在奇数里面,判断no能否被 小于no的质数 整除 5.使用math函数的sqrt,试除法的改进,对数字进行(2~sqrt(no))的试除
Add a node at linked list end #include <stdio.h> #include <stdlib.h> //malloc typedef struct node{ int data; struct node* next; }*list; list add_node_end(list ptr,int data) { list temp = (list*)malloc(sizeof(list)); temp ->
1.C++11 weak_ptr智能指针(一看即懂) 2.C++智能指针weak_ptr详解
假设我们存一个数据0x12345678 这是一个16进制的数据 我们知道一个字节有8位,一个16进制的数占4位,而内存空间他是以字节为基本单位的。 大端存储是从低地址到高地址依次存入数据,小端存储则是从高地址到低地址依次存入。 以上面数据为例子 大端存储:12 34 56 78 12在最低的地址上 小
1 smart pointer 思想 个人认为smart pointer实际上就是一个对原始指针类型的一个封装类,并对外提供了-> 和 * 两种操作,使得其能够表现出原始指针的操作行为。 要理解smart pointer思想首先要了解一个概念RAII(Resource Acquisition Is Initialization), 直译为资源获取即
一、关键字 (1)新增关键字:thread_local、static_assert、nullptr、noexcept、decltype、constexpr、char32_t、char16_t、alignof、alignas thread_local:实现了线程局部存储,让每个线程都独立访问数据,互不干扰;thread_local 标记的变量在每个线程里都会有一个独立的副本,是
一、应用场景 在工业应用中有很多产品需要需要检测多个缺陷,例如手机玻璃屏的划伤检测、凹凸点检测、脏污、崩边、等等一系列的检测。这些检测内容又不可能用一套视觉方案去解决、但是如果用多工位分别检测会有这样两个弊端:第一个在安装空间上可能不允许,第二个可能成本也会大大
简介 最近在看代码时,发现了两个之前没见过的数据类型:intptr_t,uintptr_t。这两个数据类型是ISO C99定义的,具体代码在linux平台的/usr/include/stdint.h头文件中。 /* Types for `void *' pointers. */ #if __WORDSIZE == 64 # ifndef __intptr_t_defined typedef long int intptr
/* 目录: 一 C原理 二 汇编原理 */ 一 C原理 void change(int** p2) { printf("p2 = 0x%x, *p2 = 0x%x\n", p2, *p2); printf("*p2 = 0x%x, *8p2 = %d\n", *p2, **p2); } int main() { int i = 3; printf("&i = 0x%x, i = %d
第一题 题目链接:https://leetcode.cn/problems/middle-of-the-linked-list/ 个人题解:双指针,快指针走到尾,慢指针就走到中间了 代码: class Solution { public: ListNode* middleNode(ListNode* head) { auto f=head,s=head; while(f && f->next){ s
一、什么是智能指针 一般来讲C++中对于指针指向的对象需要使用new主动分配堆空间,在使用结束后还需要主动调用delete释放这个堆空间。为了使得自动、异常安全的对象生存期管理可行,就出现了智能指针这个概念。简单来看智能指针是 RAII(Resource Acquisition Is Initialization,
1.什么是智能指针 从比较简单的层面来看,智能指针是RAII(Resource Acquisition Is Initialization,资源获取即初始化)机制对普通指针进行的一层封装。这样使得智能指针的行为动作像一个指针,本质上却是一个对象,这样可以方便管理一个对象的生命周期。 在c++中,智能指针一共定义了4种:aut
template <typename T> class poor_unique_ptr { public: explicit poor_unique_ptr(T* ptr=nullptr): ptr_(ptr) {}; ~poor_unique_ptr() { if (ptr_) { delete ptr_; } } // 删除拷贝构造和拷贝赋值 poor_unique_ptr(cons
一:背景 1. 一个有趣的话题 最近在看 硬件异常 相关知识,发现一个有意思的空引用异常问题,拿出来和大家分享一下,为了方便讲述,先上一段有问题的代码。 namespace ConsoleApp2 { internal class Program { static Person person = null; static void Main(st
在VC++中,一个std::function对象会根据情况被编译成多种情况,函数指针,函数对象(lambda),其中还涉及了优化等问题。 对于函数对象来说,常规的手段没有任何办法可以做比较,所以只能去二进制层面看看底层数据。 在VC中可以用同一个结构去模拟std::function对象 struct std_function_struct
目录unique_ptrrelease 不会释放内存 unique_ptr release 不会释放内存 release 只会放弃所有权,不会释放内存资源; reset 既放弃所有权,还会释放内存资源(调用删除器)。如果有参数,还会接管参数对应的新资源。 #include <iostream> #include <memory> using namespace std; class A {
前言 本文将对Apollo预测模块进行梳理,了解Apollo中进行预测的具体流程和工作原理 如上述架构图所示,预测处于感知与规划之间,它会对感知到的障碍物信息进行分析,并对障碍物未来一段时间内的行为及轨迹进行预测,并将信息反馈到规划模块,使规划模块能够生成更加合理、安全的轨迹 我会
最近在看 C++ 类继承中的字段内存布局,我就很好奇 C# 中的继承链那些 private 字段都哪里去了? 在内存中是如何布局的,毕竟在子类中是无法访问的。 一:举例说明 为了方便讲述,先上一个例子: internal class Program { static void Main(string[] args) {
dreamview操作技巧及planning目录分析 dreamview操作技巧 route editing在地图上右键拖动可以拖动地图 route editng中滚轮可以放大缩小地图 /data/core中的文件貌似是垃圾文件 watch -n 1 nvidia-smi可以查看GPU使用情况 apollo_map场景标注 场景注册 场景管理类"scenario_manag
1. string 类 p531 1)构造函数 一个比较特殊的构造函数 template <class Iter> string (Iter begin, Iter end); // 范围包括 begin 在内,但不包括 end 例如: char c[] = "All's well that ends well"; ... string s(c+6, c+10); 注意,假设有另外一个 string 对象 s1: string s1;
0. 前言 RAII (Resource Acquisition Is Initialization, 资源获取即初始化) 是 C++ 特有的资源管理方式,依托栈和析构函数对所有资源(包括堆)进行管理。实际上就是利用一个类来实现一个来管理资源,将资源和类对象的生命周期进行绑定,这样就可以不用再手动释放资源。 1. auto_ptr 先看
所谓软件设计,是“令软件做出你希望它做的事情”的步骤和做法,通常以颇为一般性的构想开始,最终演变成十足的细节,以允许特殊接口的开发,这些接口而后必须转换为C++声明式。本章将以接口开始讲解软件设计和声明,主要包括以下几个部分: 接口 类 参数 返回值 成员变量 成员函数 让接口容
share_ptr:c++11引入的智能指针。是模板类,允许多个指针指向同一个对象。通过判断引用计数的值,来决定何时释放动态内存。 1.用nullptr构造时,引用计数为0; 2.用非nullptr构造时,引用计数为1; 3.拷贝一个share_ptr,引用计数会加1:如拷贝构造,share_ptr作为参数传递给函数,作为函数的返回值。
1 内存篇 2 静态内存、栈内存、动态内存 3 静态内存:用来保存局部static对象,类static数据成员、以及定义在 任何函数外的变量 4 栈内存:用来保存定义在函数内的非static对象。 5 动态内存:new出来的内存 6 7 分配在静态内存和栈内存的对象由编译器自动创建和销毁,
博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 这一次我们来对内核进行完善,主要包括全局描述符的加载、任务调度、中断等 全局描述符的加载 我们回顾下,是不是在loader中有关于全局描述符的一些代码 prepare_protected_mode: cli; 关闭中断 ; 打开A