《算法入门经典学习笔记》

n 个数,每行有 cols 列,一共有 rows = (n-1)/cols + 1行

<< 和 >> 的重载不能直接写在 struct 里面,需要写成全局的函数

对于优先队列 priority_queue<int,vector <int> ,cmp> pq

1
2
3
4
5
struct cmp{
bool operator () (const int a, const int b,) const{
return a > b;
}
};

sprintf(buff, "%08d", n); 将数字 n 写入 buff 。 在printf中%08d表示输出宽度为8,不足8位的补0,%8d表示输出宽度为8,不足8位的补空格。sprintf 返回被写入buffer 的字节数

sscanf(buff, "%d", &n); 将 buff 写入数字 n 。sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。

1
2
3
4
5
6
7
8
const char s[] ="123456435";
int n;
sscanf(s,"%3d",&n); //截取三个字节,即3个数字
cout << n <<endl; // n=123

char buff[100];
sprintf(buff,"%d",n);
cout << buff << endl; // buff = 123456435"

多个数据集输入每次进行要对数据结构进行清空处理

可以利用重定向完成文件的写入

diff -y 分成两列查看

strchr(s,’,’) 其中s为字符数组,返回第一个’,’的位置指针