STL是标准模版库的缩写,是泛化编程的实现,基本观念是将数据和操作进行分离,数据使用容器进行管理,操作由算法进行实现,迭代器在两者之间进行沟通,使得任何算法和任何容器都有可能进行交互运作。这篇文章以一个简单的例子进行介绍STL使用上的便利之处。
临位对换实现全排列
比如通过临位对换方式实现的全排列,代码可能如下:
#include <iostream>
using namespace std;
void swap(int* x, int* y) {
int tmp = *x; *x = *y; *y = tmp;
}
void permutation(int *list, int k, int n) {
if (k == n-1) {
for (int i=0; i<n; i++) cout << list[i] << " ";
cout<<endl;
return;
}
for (int i=k; i<n; i++) {
swap(&list[k],&list[i]);
permutation(list,k+1,n);
swap(&l