知識點
- long long , long , int 的長度:
- 32位系統:int(4個字節) long(4個字節) long long(8個字節)
- 64位系統:int(4個字節) long (8個字節) long long(8個字節)
- 推薦的聲明數組的方法:
- const int maxn = 100 + 10;
- int A[maxn];
- c++中有bool類型,但是c中沒有
- 注意是在c++中提供了“引用”即 &, 表示參數按照傳遞引用(by reference)的方式傳遞。
- c語言中的字符串,就是 字符數組
- 對於非string類型的數組 a,求數組的長度的方法:
引用和指針的區別
- 指針:是一個變量,存儲的是一個地址
- 引用:和原變量是一個東西,只不過是變量的一個別名而已
- 指針和引用的使用形式:
int a = 1; int *p = &a;
int a = 1; int &q = a;
- 可以有const指針,但是不能有const引用
- 指針的值可以爲NULL,但是引用的值不能爲空
- 指針的值在初始化以後可以改變,即其指向的存儲單元,但是引用初始化之後就不能在改變了。
- sizeof(指針):得到的是指針變量存儲區的大小; sizeof(引用):得到的是原變量存儲區的大小。
String常用函數
- length()和size()函數的功能是一樣的,都是返回當前字符串的長度
- empty()判斷字符串是否爲空
Algorithm常用函數
- min(a,b):返回a,b中的最小值
- sort(a, a+size): 對數組a進行升序排序;
不定長數組vector
- vector a就是一個不定長數組。
- a.size():讀取vector的大小;
- a.resize():改變vector的大小
- a.push_back():向尾部添加元素;
- a.pop_back(): 刪除最後一個元素
- a.resize(n):將n以後的元素刪除
- a.resize(n,value): 新分配出的空間用value初始化
- a.clear(): 清空vector
- vector 是一個模板類,所以需要使用vector< int >a 或者 vector< double >b 這樣的方式來聲明裏面裝的元素的類型。
- vector< int > a ; 類似於一個int a[]數組;
vector<int> b(5,1);
vector<string> aa;
aa.push_back("a");
aa.push_back("b");
aa.push_back("c");
cout << "請輸入值";
cin >> aa[2];
vector<string>:: iterator iter;
for (iter = aa.begin(); iter != aa.end(); iter++) {
cout << *iter << endl;
}
for (int i = 0; i < aa.size(); i++) {
cout << aa[i] << endl;
}
if(aa.empty()) {
cout << "向量非空";
}
vector<int>::iterator iter2 = b.begin();
b.insert(iter2, 1, 3);
b.insert(b.begin(),100);
for (int i = 0; i < b.size(); i++)
cout << b[i] << endl;
b.erase(b.begin()+1);
集合set
映射map
- map就是從鍵(key)到 值(value)的映射。
- 因爲重載了[]運算符,map像是數組的”高級版”。使用方法
map<string, int> name;
name["aa"] = 1;
name["bb"] = 2;
map<string,int>:: iterator iter;
for (iter = name.begin(); iter != name.end(); iter++) {
cout << iter->first << " " << iter ->second << endl;
}
cout << name["bb"];
cout <<name.count("bb");
iter = name.find("bb");
if (iter == name.end()) {
cout << "不存在 ";
}
name.erase("bb");
- 注意,參看某個鍵值對是否存在,一定不要使用下面的方式,因爲這樣會向map中插入元素
cout << name_map["bb"];
- map和set都支持insert, find, count 和remove 操作, 並且可以按照從小到大順序循環遍歷其中的元素。
- map也被稱作是“關聯數組”。
棧、隊列與優先隊列
大整數類
參考