使用数组 数组: 所谓数组,就是指相同类型的变量以确定的个数有序排列的集合。 #include <stdio.h> int main(void) { int array[5]; int i; /*对数组array设置值*/ for (i = 0; i < 5; i++) { array[i] = i; } /*输出array内容*/ for (i = 0; i < 5; i++) { print
1. #define CHAR_SIZE 100 #define NUL '\0' int main(void){ char string[CHAR_SIZE]; fgets(string, sizeof(string)/sizeof(string[0]), stdin); double string_length; int char_num[7] = {0}; string_length = strlen(string
\(STL\) 容器的共有特征:.begin() .end()//表示最后一个元素的后面那个位置 .size()//无符号整型 .swap(b) ::iterator//迭代器 关于迭代器 迭代器可以看做是一个广义的指针,可以是指针,也可以是对其进行类似指针操作的对象。 list<int>::iterator it;//it是迭代器名称 list<int>a; f
原博客出处 24张图,九大数据结构安排得明明白白! (qq.com) 参照上面博客,以及自己的理解,记的笔记。如果有错误,感谢各位大佬对我的指正,保持虚心学习的态度,非常感谢博客主人的分享,收获特别大。 1. 顺序表 逻辑上+连续的+相同类型+线性数据结构 优势:依据下标,直接拿取。查找效率高 劣势:数
上一步阐述了如何使用代码替换功能对付变化位置的数据地址,但这种方法往往不能达到预期的效果,所以我们需要学习如何利用指针,在本关的 Tutorial.exe 窗口下面有两个按钮,一个会改变数值,另一个不但能改变数值而且还会改变数值在内存中存储的位置。 接下来我们将找到内存中的基址, 为什
java与c++的区别 提起java就不得不提起jvm,jvm是java得以实现“一次编写,到处运行”的基础,也是java相比c++简单的一大重要原因(GC)这里就有几点不同: 跨平台: 在c++中64位系统下是可以运行32位程序的,但是反过来的话是比较麻烦的。因为32位指针大小为4 byte,而64位的指针大小为8 byt
这个教程全部是来自 Cheat Engine 软件的中的帮助教程 步骤 1: 初始化CE工具 点击教程(64位): 欢迎使用 Cheat Engine 训练教程 (3.3) 本教程将尝试讲解在游戏中作弊的一些基本知识. 并帮助你熟悉 Cheat Engine 的使用方法 (简称为CE). 请按下面的步骤开始. 1:首先要打开
1.引用 int a =10; int& b =a; 引用 int * p = &a; 指针 1. 引用不是独立的数据类型,必须先定义一个变量,再对其建立引用(像寄生虫一样) 当一个函数的参数是某个变量的引用时,形参不必在声明中初始化,即作为形参的引用是实参的别名 2.int& b= a
写: << put write 读 >> read getline 文件指针 1.文件读写是否成功 good() bad() fail() f.open后直接使用f作为条件来判断; 2.是否读到文件末尾 f.eof() 3.文件指针 tellg() 返回读取文件指针的当
1.何为双指针 双指针主要用来遍历数组,两个指针指向不同的元素,从而协同完成任务。我们也可以类比这个概念,推广到多个数组的多个指针。 若两个指针指向同一数组,遍历方向相同且不会相交,可以称之为滑动窗口(两个指针包围的区域为当前的窗口),经常用于区间搜索。 若两个指针指向同一数
数据结构学习笔记 数据结构=个体的存储+个体的关系存储 算法=对存储数据的操作 数据结构是专门研究数据存储的问题 狭义的算法是与数据的存储方式密切相关;广义的算法是与数据的存储方式无关 一.指针 CPU无法直接访问硬盘,只能直接访问内存,故若想要访问硬盘中的数据,先要将硬盘中的内
bat批处理日期时间格式设置使用小结。 @echo off@title 字符串的编辑测试(下面描述用的箭头→ ← 分别表示向右、向左的意思)set aa=1234567890echo 说明:下面复合变量中,逗号前的数字表示指针偏移量,逗号后的数字表示提取的字符长度echo %aa:~1,5% //指针向右→偏移1位,
上代码: package com.liu.pro; import java.util.Arrays; public class quickSort { public static void main(String[] args) { int[] arr = {9,8,5,6,2,7,1,3,4}; sort(arr,0,arr.length-1); System.out.println(Arrays.toString(arr)); }
学习C++首先要回忆起C语言当中的指针和结构体知识,本文作者将通过一段代码来总结指针和结构体基础知识:指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。结构体是一个由程序员定义的数据类型,
#include <iostream> using namespace std; void swapr(int &a,int &b); void swapp(int *pa,int *pb); void swapv(int a,int b); int main() { int wallet1=300; int wallet2=350; cout << "wallet1 = "<<wallet1<&l
类型双关 C标准中的未定义行为,对于一个变量分配的内存,我们绕过c++的类型系统,原始的看待这块内存,将它按照另外的类型解读。 代码示例 struct Vector { int x, y; int* GetPosition() { return &x; //将Vector双关为一维数组 } } Vector v = {100, 200}; //传统写法 in
一个指针在64位的计算机上,占8个字节;一个指针在32位的计算机上,占4个字节。这么简单的问题,为什么面试官愿意问呢?其实这个问题不是在考你的记忆能力,是在考察你的计算机基础能力。就比如,在你答出来4个字节的情况下,面试官会问一句:为什么呢?首先,我们要明白,指针就是地址,地址就是指针。 而
Given a string s, return the last substring of s in lexicographical order. Example 1: Input: s = "abab" Output: "bab" Explanation: The substrings are ["a", "ab", "aba", "abab", "b", &
前言 在Python 3.5(含)以前,字典是不能保证顺序的,键值对A先插入字典,键值对B后插入字典,但是当你打印字典的Keys列表时,你会发现B可能在A的前面。 但是从Python 3.6开始,字典是变成有顺序的了。你先插入键值对A,后插入键值对B,那么当你打印Keys列表的时候,你就会发现B在A的后面。 不仅如此
1.C++11 weak_ptr智能指针(一看即懂) 2.C++智能指针weak_ptr详解
什么是java Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 jav
Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0. Notice that the solution set must not contain duplicate triplets. Solution 我们需要输出方案,不在乎下标,
//前言:本文仅用于作者自己学习记录,如有侵权请联系删除 1.const 关键字const用来告诉编译器一个一旦被初始化过的变量就不能再修改. 1、起作用的阶段 编译运行时起作用-同时有进行类型检查-且定义的只读变量只备份一次。 //类型检查:验证操作接收的是否为合适的类型数据
常量指针 指针的指向可以修改,指针指向的值不可以修改。从右往左读代码发现首先是p表示一个指针,int表明了指针的类型,而再往左const修饰的是这个int类型的指针,我们可以去掉int来看就是const * p。故常量指针const修饰的是p,*p不可变,p可变。 const int * p = &a 指针常量 指针的指向不
《C++高级编程》第4版 18.2节 可以指向任何可调用对象:函数、函数对象、或 lambda 表达式;被称为多态函数包装器,可以当成函数指针使用,还用作实现回调函数的参数。function 真正有用的场合是将回调函数作为类的成员变量。 必须用 std::function<> 而不能用指针 如果 process 函数的