//隊列的使用
#include<queue>
//在BFS中會使用到隊列
//優先隊列
priority_queue<元素類型> Q;
Q.push(); // 壓入元素
Q.pop; // 彈出
Q.front(); // 取頂元素
Q.empty(); // 判斷是否為空
// 優先隊列中默認的是大的先出
// 若要使小的先出,則可在元素類型struct中重載 “<”
struct node{
friend bool operator < (node n1, node n2)
{
return n1.Step > n2.Step;
// 小的先出
}
int Step;
};
// 優先隊列 取頂時應使用 Q.top();
//鏈表的使用
#include<list>
list<int> lis;
list<int>::iterator iter; // 跌代器 (指針)
list.push_back(); // 在鏈表尾插入元素
//操作表中的每個元素時,必須要使用指針
// *iter 即為 iter 所指的元素的值
for(iter = lis.begin(); iter != lis.end(); iter ++)
{
iter = lis.erase(iter);
// 刪除表中一位置的元素
// 若刪除指定位置,第 i 個,可用 i 記數
}
// lis.insert() 插入在當前指針所指的元素之前
//容器 vector 的使用
#include<vector>
vector<int> v;
v.push_back(); // 在尾部插入元素
v.size(); // 返回容器的大小
v.clear(); // 清除容器的元素
v.resize(); //分配表的大小
//若使用vector 來表示二維,則可
vector<vector<int> > v(n);
//或者
vector<vector<int> > v;
v.resize(n);
// 可以表示有 n 行的二維數組
// 對于每一維 , v[i] 的操作與 v 一致
// 傳 vector 的使用
void pp(vector<vector<int> > &vv)
{
// 傳vector 的函數使用
int i ,j;
for(i = 0 ; i < vv.size(); i ++)
{
for(j = 0 ; j < vv[i].size(); j ++)
printf("%d ",vv[i][j]);
printf("\n");
}
}
void main()
{
int i,j;
vector<vector<int > > a(10);
for(i = 0 ; i < 10 ; i++)
for(j = 0 ; j < i;j ++)
a[i].push_back(j);
pp(a);
// 調用函數
}
// C++ 自帶的排序 sort
#include<algorithm>
//頭文件
bool cmp(int a, int b){
return a > b;
} // 使得降序排列
//默認為升序 sort(a,a + n);
sort(A, A+n,cmp);
//也可對結構體排序,比較函數自己實現
// 要對容器中的元素排序
// 可使用跌代器
// 把容器中起始與結束的指針傳給 sort
// example
vector<int> v;
vector<int> ::iterator it1;
vector<int> ::iterator it2;
it1 = v.begin();
it2 = v.end();
sort(it1, it2 ,cmp);
// string
// 使用起來相對比較多 , 主要在處理字符串的時候
#include<string>
string s1 , s2 , s3;
// string 類的賦值
// 即可以 相互之間,也可以把字符串直接賦給 string 類
// example
char ss[] = “abcd”;
s1 = “”; // string 類初始為空
s1 = ss ; // 把字符串直接賦給string
s2 = s1; // sgring 之間賦值
// string 類可以直接使用 + 來進行字符串的拼接
s1 = “ab”;
s2 = “cd”;
s3 = s1 + s2;
// 操作的結果 s3 == “abcd”;
// 常用的函數
s1.size(); // 字符串的大小,既長度
// 對于已經賦值的字符串,可以直接對下表進行操作
// 可以使用查找函數
s1.find(s2) ; // 在s1 中查找 s2 ,如果存在,返回起始下表,否則返回 -1
s1.substr(起始位置,長度); //取子串
posted on 2009-02-10 18:42
混沌的云 閱讀(547)
評論(2) 編輯 收藏 引用