char

小知识杂记(知识点)

杀马特。学长 韩版系。学妹 提交于 2020-03-01 21:56:49
lower_bound() 函数lower_bound()在first和last中的 前闭后开 区间进行二分查找,返回大于或等于val的 第一个元素 位置。 调用lower_bound之前必须确定序列为有序序列,否则调用出错。 lower_bound(val): 返回容器中第一个值【大于或等于】val的元素的iterator位置。 upper_bound(val): 返回容器中第一个值【大于】val的元素的iterator位置。 对于有序数组a【n】,lower_bound(a,a+n,x)值为第一个 【大于或等于】x的元素在数组中的下标; hash 对于字符串sh【N】其hash值可以为 for(int i=0;i<n;i++)hash=hash*base+sh[i] //base是一个小质数 hash的初始值为0; 对于查找字符串sh2中包含几个字符串sh可以进行如下操作 for(int i=0;i<strlen(sh2);i++)hs[i+1]=hs[i]*base+sh2[i]; for(int i=0;i+strlen(sh)-1< strlen(sh2);i++ )if(hash==genth(i,i+strlen(sh)))ans++; //genth(int l,int r){return hs[r+1]-po[r-l+1]*hs[l];}//po[i

C++ 第3章 函数

非 Y 不嫁゛ 提交于 2020-03-01 21:01:07
3.1 函数的定义与使用 3.1.1 函数的定义 函数是面向对象程序设计中,对功能的抽象 类型标识符 函数名(形式参数表) { 语句序列 } 3.1.2 函数的调用 调用前先声明函数原型: 类型标识符 被调用函数名 (含类型说明的形参表); 调用形式 函数名(实参列表) 嵌套调用:函数可以嵌套调用,但不允许嵌套定义。 递归调用:函数直接或间接调用自身 例: #include <iostream> using namespace std; //计算x的n次方 double power (double x, int n); void main(void) { cout << "5 to the power 2 is "<< power(5,2) << endl; } double power (double x, int n) { double val = 1.0; while (n--) val = val*x; return(val); } 运行结果:5 to the power 2 is 25 由于函数power 的定义位于调用之后,所以需要先对函数原型加以声明。 例: 输入一个8位二进制数,将其转换为十进制数输出。1101 2 = 1(2 3 ) + 1(2 2 ) + 0(2 1 ) + 1(2 0 ) = 13 10 所以,如果输入1101,则应输出13 #include

扩展堆数组的大小

我与影子孤独终老i 提交于 2020-03-01 20:54:59
函数: void* realloc(void *ptr, size_t size); 功能: 函数将 ptr 对象的储存空间改变为给定的大小 size 。 参数 size 可以是任意大小,大于或小于原尺寸都可以。 返回值是指向新空间的指针,如果错误发生返回NULL。 扩展内存 1 int main() 2 { 3 const size_t pSize = 15; 4 5 char *p = new char[pSize]{0}; 6 strcpy_s(p, pSize, "I LOVE YOU"); 7 8 cout << "p:" << hex << (int)p << endl; 9 10 p = (char *)realloc(p, pSize * 2); 12 13 if (!p) 14 cerr << "Call realloc function error!" << endl; 15 16 17 cout << "p1:" << hex << (int)p << endl; 18 _snprintf_s(p, pSize * 2, pSize * 2, "Hello,%s C++!", p); 19 cout << p<< endl; 20 21 delete[]p; 22 23 getchar(); 24 return 0; 25 } 如果没有 p = (char *

JPEG图像密写研究(一) JPEG图像文件结构

不问归期 提交于 2020-03-01 20:37:56
【转载】转载自http://www.cnblogs.com/leaven/archive/2010/04/06/1705846.html JPEG 压缩编码算法的主要计算步骤如下: (0) 8*8 分块。 (1) 正向离散余弦变换 (FDCT) 。 (2) 量化 (quantization) 。 (3) Z 字形编码 (zigzag scan) 。 (4) 使用差分脉冲编码调制 (DPCM) 对直流系数 (DC) 进行编码。 (5) 使用行程长度编码 (RLE) 对交流系数 (AC) 进行编码。 (6) 熵编码。 一、 JPEG 文件格式介绍 JPEG 文件使用的数据存储方式有多种。最常用的格式称为 JPEG 文件交换格式( JPEG File Interchange Format , JFIF )。而JPEG文件大体上可以分成两个部分:标记码(Tag)和压缩数据。 标记码由两个字节构成,其前一个字节是固定值 0xFF ,后一个字节则根据不同意义有不同数值。在每个标记码之前 还可以添加数目不限的无意义的0xFF填充,也就说连续的多个0xFF可以被理解为一个0xFF,并表示一个标记码的开始。而在一个完整的两字节的标记码后,就是该标记码对应的压缩数据流,记录了关于文件的诸种信息。 常用的标记有 SOI 、 APP0 、 DQT 、 SOF0 、 DHT 、 DRI 、 SOS 、

MYSQL对数据库和表的基本操作

前提是你 提交于 2020-03-01 17:55:39
CREATE DATABASE testdb CHARSET=UTF8 创建一个数据库 名字叫做testdb USE testdb; 选择数据库 CREATE TABLE testTable1( -> id int(11) not null primary key auto_increment, -> username char(16) not null, -> password char(16) not null); 创建一个表 名字为testTable1 第一个字段名字为 id 最大11个字符 not null 不允许为空 Primary key 设置主键 auro_increment,自动增长 第二个字段名字为username char型最大16个字符 不允许为空 第二个字段名字为password char型最大16个字符 不允许为空 DROP TABLE testTable1;DROP DATABASE testdb; 删除一个表 删除一个数据库 来源: https://www.cnblogs.com/hack747/p/12390888.html

指针 * 跟类型还是变量名

佐手、 提交于 2020-03-01 17:52:39
星号跟谁? 算是指针系列的一个番外篇, 星号到底跟谁? #include <stdio.h> int main() { char * greet = "Hello World"; printf("%s", greet); return 0; } 单看 greet 是 char* 类型, 表示 N 个 char , 我就是全部; 但看 *greet 是 char 类型, 但有 N 个, 我是第一个. 不同表达, 不同含义. 下面一个简单的函数可以区别. #include <stdio.h> int main() { printf("%c", *greet); printf("%s", greet); return 0; } 略概看了些开源框架, 规范的写法还是跟名字 char *greets . 来源: https://www.cnblogs.com/swyw/p/12390936.html

strlen&&sizeof

懵懂的女人 提交于 2020-03-01 17:40:59
sizeof 和 strlen 有以下区别:  sizeof 是一个操作符,strlen 是库函数。  sizeof 的参数可以是数据的类型,也可以是变量,而 strlen 只能以结尾为‘\ 0‘的字符串作参数。  编译器在编译时就计算出了 sizeof 的结果。而 strlen 函数必须在运行时才能计算出来。并且 sizeof 计算的是数据类型占内存的大小,而 strlen 计算的是字符串实际的长度。  数组做 sizeof 的参数不退化,传递给 strlen 就退化为指针了。 int _tmain(int argc, _TCHAR* argv[]) { //strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0', // 如果你只定义没有给它赋初值,这个结果是不定的 // 它会从aa首地址一直找下去,直到遇到'\0'停止 //而sizeof()返回的是变量声明后所占的内存数,不是实际长度, //此外sizeof不是函数,仅仅是一个操作符,strlen是函数。 char aa[10]; std::cout << strlen(aa) << endl; //结果是不定的 char bb[10]={'\0'}; std::cout << strlen(bb) << endl; //结果为0 char cc[10] = "hui"; std:

POJ1786-Bridge Hands

拟墨画扇 提交于 2020-03-01 17:28:08
问题链接 POJ1786 问题描述 花色是(梅花)<(方片)<(黑桃)<(红桃),(输入时,用C,D,S,H分别表示梅花,方片,黑桃,红桃,即其单词首字母)。对于牌面的值,规定2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q < K < A。 从小到大排序每个人手中的牌,并按照给定格式输出。 思路 静态数组分别存储花色和牌面值,用下标进行比较。 可以采取取模的方式进行发牌。 使用sort排序 代码 # include <iostream> # include <stdio.h> # include <algorithm> using namespace std ; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ char que [ ] = { '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'T' , 'J' , 'Q' , 'K' , 'A' } ; char flower [ ] = { 'C' , 'D' , 'S' , 'H' } ; int find1 ( char temp ) { for ( int i = 0 ; i < 13 ;

C语言常用库函数

蹲街弑〆低调 提交于 2020-03-01 17:07:42
参考:https://www.runoob.com/ size_t strlen ( const char * str ) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。 char * strcpy ( char * dest , const char * src ) 把 src 所指向的字符串复制到 dest。 需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。 char * strncpy ( char * dest , const char * src , size_t n ) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。 注意事项: 1. 返回值是字符串类型时,主要末尾添加'\0' 来源: CSDN 作者: very_happy 链接: https://blog.csdn.net/verhappy/article/details/104592621

C总结-part_2-数组&字符串

风流意气都作罢 提交于 2020-03-01 16:54:26
5_数组 & 字符串 数组 数组属于构造数据类型。 数组元素,可以是基本数据类型,也可以是构造类型; 空格 \t 换行 \n ——————————————————————————————————————————————— 数组的大小 int score[10]; sizeof(score); // 40,一个int为4B,10个占用40B sizeof(int); // 4 int length = sizeof(score)/sizeof(int); // 可以通过这种方式计算出数组长度 // 注意:即使数组越界,sizeof依然会返回一个正确的数组元素占用的大小值 // 例如,score[10000],下标越界,但是sizeof依然可以返回4 int len = sizeof(score)/sizeof(score[10000]); ——————————————————————————————————————————————— 数组初始化 int a[10] = {1,2,3,4,5,6,7,8,9,0}; int b[10] = {1,2,3}; // 前3个赋值,后7个全部为默认0; int a[10] = {0}; // 10个元素全部赋值为0 int a[] = {1,2,3,4,5};; // 未指定数组长度,只指定成员 int a[10] = {1}; //