C、C++语言
C、C++语言
春江花月夜晨
这个作者很懒,什么都没留下…
展开
-
C++ list 总结 遍历删除 iterator
目标:在遍历list时候,删除其中不需要的元素。常见的错误示范,因为t进行erase时,it已经是非迭代量,自然不能作为迭代操作。std::list<int > TESTLIST;TESTLIST t;for (int i = 0; i < 10;i++){ t.push_back(i);}for (TESTLIST::iterator it = t.begin(); it != t.end();it++){ t.erase(it);}正确做法一这种做原创 2020-08-14 15:28:25 · 3149 阅读 · 2 评论 -
169.多数元素
class Solution {public: int majorityElement(vector<int>& nums) { if (nums.size()==1) { return nums[0]; } //insert sort for (int i = 1; i < nums.si...原创 2020-02-13 13:10:35 · 150 阅读 · 0 评论 -
15.三数之和(数组+排序+双指针)
我的方案:class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<int> v(3); vector<vector<int>> vec; if (nums.size...原创 2020-02-12 23:02:31 · 96 阅读 · 0 评论 -
插入排序和快排code
// 插入排序,a表示数组,n表示数组大小public void insertionSort(int[] a, int n) { if (n <= 1) return; for (int i = 1; i < n; ++i) { int value = a[i]; int j = i - 1; // 查找插入的位置 for (; j >...原创 2020-02-12 16:02:30 · 146 阅读 · 0 评论 -
leetcode 26、27删除排序数组中的重复项
26:双指针的方法:快指针是用作搜索符合条件的情况,并将其赋值给慢指针,最后输出结果为慢指针。class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums.size() == 0) { return 0; } int i...原创 2020-01-07 19:39:28 · 90 阅读 · 0 评论 -
冒泡排序
冒泡排序思想就是相邻两个数比较大小,将最大或最小的数放在最后,最后那个数确定并不在比较,再从第一个数进行冒泡比较。冒泡排序的时间复杂度是O(n^2),稳定性:因为冒泡排序中,要求A[i-1]是严格大于A[i]的,在交换的过程中。重复元素虽然有所聚集,但不会相互跨越。因此冒泡排序是稳定的。A[5]={4,6,3,7,2}两个for循环进行排序 for (int i = 0; i...原创 2019-09-01 20:17:38 · 265 阅读 · 0 评论 -
C++ map总结
一、定义:所有元素都会根据元素的减值自动被排序。map的所有元素都是pair,同时拥有实值(value)和键值(key)。pair的第一个元素会被视为键值,第二个元素会被视为实值。map不允许两个元素拥有相同的键值。二、map的基本构造函数:map<string , int >strMap;map<int ,string >intMap;map<sring, ...原创 2019-07-24 14:39:36 · 312 阅读 · 0 评论 -
递归调用
Tip:需要将一项工作不断分为两项较小的、类似的工作时,则用递归。 递归方法简称分而治之策略(divide-and-conquer strategy)。#include&lt;iostream&gt;#include&lt;fstream&gt;#include&lt;cstdlib&gt;#include&lt;string&gt;#include&原创 2018-05-10 08:21:58 · 210 阅读 · 0 评论 -
TCL基本语法
1.输出:tcl使用”puts”关键字来作为输出语句puts hello 结果=> hello puts –nonewline "hello hello" 结果=>hello hello2.赋值: tcl 使用“set”关键字来定义参数,不必指定变量值的类型,因为变量值的类型仅一种——字符串。为变量赋值时,会为变量开辟一段内存空间来存储变量值。set a ...原创 2018-03-05 18:38:22 · 3217 阅读 · 0 评论 -
Namespace
1、命名空间是用来组织和重用代码的。NameSpace(名字空间) 2、C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。 3、<iostream>和<iostream.h>格式不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。 后缀为.h的头文件c++标准已...原创 2018-03-05 18:31:28 · 528 阅读 · 0 评论 -
Extern
1、extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。2、例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。 这样,模块B中调用模块A中的函数时, 在编译阶段,模块B虽然找不到该函数,但是并不会报错; 它会在链接阶段中从模块A编译生成的目标代码中找到此函数。3...原创 2018-03-05 18:29:47 · 331 阅读 · 0 评论 -
用指处理链表----恶补之七
链表是一种常见重要的数据结构。它是动态地进行存储分配的一种结构。链表有个头指针“head”,它存放一个地址,并指向一个元素。称为“结点”,function 1:用户需要的用的实际数据;2:下一个结点的地址。最后一个元素地址部分为“NULL”。链表中各元素在内存中的地址可以是不连续的。#include<stdio.h>struct Student{ int num; float s原创 2016-09-22 20:49:05 · 182 阅读 · 0 评论 -
对文件的输入输出----恶补之八
文件有不同类型 (1)程序文件 包含源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(.exe)等。 (2)数据文件 文件的内容不是程序,而是供程序运行时读写的数据。例如学生的成绩数据。文件(file)一般指存储在外部介质上数据的集合。 输入输出是数据传送的过程,形象称为流(数据流)。文件可分为ASCII文件和二进制文件。通过文件的指针变量能够找到与它关联的文件。 F原创 2016-09-22 21:19:32 · 219 阅读 · 0 评论 -
c语言 指针(遗忘太久,用到时候都忘记了,复习复习)--恶补之一
通过地址能找到所需的变量单元,可以说:地址指向该变量单元。 地址形象化地称为“指针”。 如果有一个变量专门用来存放另一个变量的地址(即指针),则它称为“指针变量”。#include <stdio.h>int main(){ int a = 100,b = 10; int *pointer_1,*pointer_2; pointer_1=&a; pointer_原创 2016-09-20 17:08:22 · 623 阅读 · 0 评论 -
指针引用数组----恶补之二
int a[10]={1,3,4,5,6,8,9,0,32,23}; int *p; p=&a[0];//int *p=&a[0]//int *p=a; 指针指向数组元素时,可以进行加减运算 当两个指针相减,如p1-p2(只有它们都指向同一数组中的元素时才有意义) p+1指向同一数组种的下一个元素,p-1则是上一个(加一是加上数组元素所占用的字节数)*(p+5), * (a+5)和a[原创 2016-09-20 21:26:14 · 297 阅读 · 0 评论 -
指向函数的指针---恶补之三
定义一个指向函数的指针变量,用来存放某一个函数的起始地址,这就意味着此指针变量指向该函数。 int (*p)(int ,int); 定义p是一个指向函数的指针变量,它可以指向函数的类型为整型且有两个整型参数的函数,p的类型用int(* )(int ,int)表示。用函数求得a和b中的大者#include<stdio.h>int main(){ int max(int ,int);//原创 2016-09-21 11:51:33 · 387 阅读 · 0 评论 -
指针数组和多重指针----恶补之四
一个数组,若其元素均为指针类型数据,称为指针数组。 That’s to say指针数组中的每一个元素都存放一个地址,相当于一个指针变量。 类型名 *数组名[数组长度]; int *p[4]; Attention:int (* p)[4] //是指向一维数组的指针变量指针数组适合指向若干个字符串 例8.27 将若干个字符串按字母顺序(有小到大)输出。include<std原创 2016-09-21 15:45:35 · 535 阅读 · 0 评论 -
定义和使用结构体变量---恶补之五
C语言允许用户建立由不同类型数据组成的组合型的数据结构,它称为结构体(structure) structrue Student { int num; char name[20]; ………… };structure 结构体名 {成员列表};(变量名表列) 注:当structrt Student b = {.name=”Zhang Fang”}; 其他未被初始化的数值原创 2016-09-22 11:53:27 · 257 阅读 · 0 评论 -
结构体指针---恶补之六
指向结构体对象的指针变量既可指向结构体变量,也可指向结构体数组中的元素,指针变量的基类型必须与结构体变量的类型相同。 struct Student *pt; 如果p指向一个结构体变量stu,以下3种方法等价: 1、stu.成员名(如stu.num); 2、(*p).成员名(如( *p).num); 3、p->成员名(如p->num;)#include<stdio.h>#define N 3原创 2016-09-22 15:41:32 · 228 阅读 · 0 评论 -
共用体
定义: 使用覆盖技术,几个变量相互覆盖,从而使几个不同变量共占同一段内存的结构,成为共同体类型的结构。 共同体的定义类似结构体,不过共同体的所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能使用其中的一个成员变量。union 共用体类型名 { 成员列表 }; union data{ int i; char ch; double d; };原创 2017-03-02 14:52:43 · 519 阅读 · 0 评论 -
指针变量 初级
1.通过地址能找到所需的变量单元,地址指向该单元变量。2.一个变量的地址称为该变量的“指针”3.一个变量专门存放另一个变量地址(即指针),称为“指针变量”4.定义指针变量一般形式 : int *pointer_1,*pointer_2; Int为基类型 指针变量可指向的变量类型。5.指针变量前面的“*“表示为该变量的类型为指针型变量6.a是指向整型数据的指针变量原创 2016-01-18 20:50:46 · 283 阅读 · 0 评论