**
关于源文件与头文件:代码:头文件代码
**:#includenamespace pers {
struct person {
std::string fname;
std::string lname;};
void getperson(person&);
void show(const person&);}
namespace debts {
using namespace pers;
struct debt {
person name;
double amount;
};
void getdebt(debt&);
void showdebt(const debt&);
double sum(const debt ar[], int n);}源文件(两个):第一个:通过包含头文件,导入了原来的名称空间,然后该文件将函数定义添加到两个名称空间中。#include
#include “源.cpp"using namespace debts;
namespace pers {
using std::cout;
using std::cin;
void getperson(person& rp) {
cout > rp.fname;
cin >> rp.lname;
}
void show(const person & rp) {
cout > rp.amount;}
void showdebt(const debt&rp)
{
show(rp.name);
cout > x))
{
std::cout 0; i–)//注意i的取值
{
p[i] = p[i - 1];
}
p[0] = t;}
void movep(int p[], int k, int n)
{
for (int i = 0; i > n;
for (int i = 0; i > p[i];
}
for (int i = 0; i > k;
movep(p, k, n);
cout max)
{
max = len;
strcpy(s2, temp);
}
if (*s1 == ' ') break;}}
int main()
{
char s1[50],s2[50];cin.get(s1,50); index(s1, s2);
cout > m;
yanghui(m, qu);
}最长的不重复的字符子串
include
#include
#include
using namespace std;
int lengthOfLongestSubstring(string s);
int lengthOfLongestSubstring(string s)
{
// 哈希集合,记录每个字符是否出现过
unordered_set occ;
int n = s.size();
// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动
int rk = -1, ans = 0;
// 枚举左指针的位置,初始值隐性地表示为 -1
for (int i = 0; i > mm;
int num;
num = lengthOfLongestSubstring(mm);
cout > client;//用户输入数字
numcheck = numoccur(table, client);
cout table[row][j + 1])
{
temp = table[row][j];
table[row][j] = table[row][j + 1];
table[row][j + 1] = temp;
}
}
}
}
void print(inttable)
{
cout mm;
vectorp1;
vectorp2;
vectorp3;
vectorp4;
for (int i = 0; i ::iterator mg = mm.begin(); mg != mm.end(); mg++){
for (vector::iterator yj = (*mg).begin(); yj != (*mg).end(); yj++)
cout = 0);
size = siz;
mm = new T[size];//动态分配size个T类型的元素空间
}
template
Array& Array:: operator = (Array& rhs)
//重载“=” 将对象rhs赋给本对象 实现对象之间整体赋值
{
if (size != rhs.size) {//如果本对象中数组大小与rhs不同 则删除数组原有内存然后重新分配delete[]mm;//删除数组原有内存
size = rhs.size;//设置本对象数组大小
mm = new T[size];//重新分配size个元素的内存
}
for (int i = 0; i = 0 && i = 0);//检查sz是否非负
if (size == sz)
return;//如果指定的大小与原有大小一样什么也不做
T* newlist = new T[sz];//申请新的内存
int n = (sz > n;
int count = 0;
Arraynice(10);
int i;for (i = 2; i next = next;//p的指针域指向当前结点的后继结点
next = p;//当前结点指针域指向p}
template
nodenode:: deleteafter()
{
node temp;
temp = next;//将欲删除的结点地址存储在temp中
if (next == 0)//如果当前结点没有后继结点 返回空指针
return 0;
next = temp->next;//使当前结点指向temp的后继结点
return temp;//返回被删除的结点的地址
}
template
node* node::getlocation()
{
return next;//返回后继结点的指针
}
template
const node* node::getlocation() const
{
return next;
}细胞分裂
:#include
#include
#include
#include
using namespace std;
const int maxx = 2000;
const int minn = 500;
class cell;
priority_queuecellque;class cell {
private:
static int total;//细胞总数
int id;//当前细胞编号
int time;//细胞分裂时间
public:
cell(int birth) :id(total++) { time = birth + (rand() % (maxx - minn) )+ minn; }
//初始化获得细胞分裂时间
int getid() const{ return id; }//获取细胞编号
int gettime() const{ return time; }//获取细胞分裂时间
bool operator s.time; }//定义"> t;
cellque.push(cell(0));
while (cellque.top().gettime()
class stack {
private:
T list[size];
int top;
public:
stack();
void push(const T& mm){
assert(!isfull());//如果栈满了则报错
list[++top] = mm;//将新元素压入栈顶}
T pop()//将栈顶元素弹出栈
{
assert(!isempty());
return list[top–];//返回栈顶元素并将其弹出栈
}
void clear()
{
top = -1;//清空栈
}
const T& peek()const//访问栈顶元素
{
assert(!isempty());//如果为空则报错
return list[top];
}
bool isempty()const
{
return top == -1;
}bool isfull()const
{
return top == size - 1;
}
};
template
stack::stack() :top(-1) {};//构造函数 栈顶初始化为-1.class cal {
stacks;
void enter(double num)
{
s.push(num);
}//操作数弹出栈 如果栈中没有两个操作数则返回错误信息
bool gettwo(double& o1, double& o2)
{
bool mod;
if (s.isempty())
{
cout
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net