基础程序
一下基本的程序,程序中公用的程序。包括函数、类等的应用。大型程序往往是基于这些基础程序编写出来的。基础程序是常用的,程序员应该知道懂得使用的程序。
海岛Blog
专注于程序设计及其竞赛,专注于集成电路EDA设计
展开
-
B00016 交换变量a和b的值
程序中的变量是一个名字,代表一个存储空间,存储空间中存储该变量的值。变量的存储空间是有其地址的,可以使用地址有关的运算符。程序中,交换变量a和b的值,可以有3种方法:1.通过中间变量进行交换2.使用算术运算进行交换,不借用其他变量3.使用位运算(异或^)进行交换一般而言,内排序通常简称为排序,是通过比较与交换操作来实现的。因此可以说,交换2个相同类型变量的值是程序中常见的基本操作。上述的交换操作可以用C语言来实现,其他程序设计语言也同样可以实现。然而,用C++语言编程时,则可以调用库函数swa原创 2021-01-28 22:08:10 · 1222 阅读 · 0 评论 -
B00015 C++实现的图类
代码来自:GitHub - obscure76/graph: c++ graphs。graph.h文件内容如下:#include#include#include#include#include#include#include#include#define MAXSIZE 100using namespace std;class Vertex{ privat转载 2016-06-21 08:30:36 · 2324 阅读 · 0 评论 -
B00014 C++实现的AC自动机
代码来自:A C++ implementation of the aho corasick pattern search algorithm。源程序如下:/** Copyright (C) 2015 Christopher Gilbert.** Permission is hereby granted, free of charge, to any person obtaining转载 2016-06-19 22:08:26 · 2439 阅读 · 0 评论 -
B00013 字符串哈希函数
哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希函数用途广泛,这个程序给出了绝大多数常用的哈希函数。源程序来自:哈希算法_百度百科。程序员可以根据自己的需要取用这些代码。需要注意的是,有可能string类的方法已经发生变化。实际使用以下程序的时候,写成str.charAt(i)编译通过不了,改为str.at(i)则编译通过。另外,这个代码转载 2016-06-18 18:10:02 · 1384 阅读 · 0 评论 -
B00012 C++算法库的sort()函数
这个程序介绍了sort()函数个各种用法。源程序来自:std::sort - cppreference.com。程序如下:#include #include #include #include int main(){ std::array s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; // sort using the def转载 2016-06-18 11:30:34 · 2600 阅读 · 0 评论 -
B00009 C语言分割字符串库函数strtok
切割字符串是常用的处理。这里给出一个使用函数strtok切割字符串的例子。使用C语言的库函数strtok来切割字符串的好处在于,可以指定任意字符作为分隔符来切割单词。使用该函数,切割字符串的分隔符可以同时指定多个,放在一个字符串数组中。程序中,指定了以空格“ ”、逗号“,”和句号“.”作为分隔符。程序如下:/* B00009 C语言分割字符串库函数strtok */原创 2016-06-15 20:08:53 · 1110 阅读 · 0 评论 -
B00011 unordered_map
是一个有关unordered_map的例子程序,代码来自:std::unordered_map - cppreference.com。unordered_map是采用哈希搜索的map。搜索速度上也许要优于map。需要主意的是,对map对象进行遍历时,该对象有可能是未排序的。源程序如下:/* B00011 unordered_map */#include #incl转载 2016-06-17 04:59:09 · 771 阅读 · 0 评论 -
B00010 map
这是一个有关map的例子程序,代码来自:std::map::emplace - cppreference.com。源程序如下:/* B00010 map */#include #include #include #include using namespace std;int main(){ std::map m; // uses pair's转载 2016-06-16 20:53:00 · 1349 阅读 · 0 评论 -
B00008 C++实现的大整数计算(一)
程序来自:BigInteger。源程序如下:/* * @author panks * Big Integer library in C++, single file implementation. */#include #include #include #include #define MAX 10000 // for stringsusing namespace转载 2016-05-22 22:39:20 · 1020 阅读 · 1 评论 -
B00007 快速模幂运算的两个C语言程序
代码来自维基百科的Modular arithmetic。这两段代码都不是大整数计算的程序,是2进制64整数的计算程序,数据不能大于2进制63位。两段代码分别如下:uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m){ uint64_t d = 0, mp2 = m >> 1; int i; if (a >= m)转载 2016-05-16 18:41:58 · 1564 阅读 · 0 评论 -
B00006 函数itoa()
这是一个通用的基础程序,将整型数转换为数字字符串。其中需要用到字符串逆序转换函数reverse()。该程序来自K&C的《C程序设计语言》一书。程序如下:/* itoa 带符号的整数转换字符串 */#include #include void reverse(char s[]){ int i,j; int c; for(i=0,j=str转载 2016-05-14 01:01:55 · 803 阅读 · 2 评论 -
B00005 函数atoi()(去空格,带符号)
这是一个通用的基础程序,将数字字符串转换为整型数。这个程序会去掉字符串开始的空格,并且能够转换带符号的整数。该程序来自K&C的《C程序设计语言》一书。程序如下:/* 带符号的atoi,跳过前面的空格 */#include #include int atoi(char s[]){ int n; int i; int sign;转载 2016-05-14 00:49:22 · 1473 阅读 · 2 评论 -
B00004 atoi函数
这是一个通用的基础程序,将数字字符串转换为整型数。程序如下:/* atoi函数:将字符串s转换为相应的整型数 */#include #include int atoi(char s[]){ int i, n; n = 0; for(i=0; isdigit(s[i]); i++) n = 10 * n + (s[i] - '0');原创 2016-05-08 06:26:06 · 566 阅读 · 0 评论 -
B00003 C++标准库 std::bitset
这个程序是有关std::bitset的简单实例。#include #include using namespace std;int main(){ bitset bitv(0xffff); // bits 0 ... 15 are set to 1; 16 ... 31 are 0 bitv.set(30); bitv.reset(1); if(原创 2016-05-02 10:01:05 · 842 阅读 · 0 评论 -
B00002 C语言位字段实例
本程序源自维基百科。Declaring a bit field in C:#include // opaque and show#define YES 1#define NO 0// line styles#define SOLID 1#define DOTTED 2#define DASHED 3// primary colors#define BLUE转载 2016-05-02 09:04:21 · 857 阅读 · 4 评论 -
B00001 C语言动态存储分配空间作为数组
将动态存储分配的空间作为数组的存储空间来使用。使用随机数函数生成数据填入数组中,随机数为整数,值的范围为0到999。用冒泡排序对数据进行排序。程序如下:#include #include#include void getData(int [], int);void printData(int [], int);void bubblesort(int a[], int原创 2016-05-02 07:34:33 · 1596 阅读 · 0 评论