大赦嗑芝五
講師:我明天要回家哭、鬆餅
一維陣列
宣告陣列
int arrs[6] = {9, 6, 0, 1, 2, 1};
//直接賦值
int arrw[6];
//陣列型別 陣列名稱[陣列大小] (未賦值)
const int MAXN = 1e6+7;
int arr[MAXN];//開陣列時只能使用常數
儲存方式
初始化方式
int arr0[100];//宣告一大小為100的陣列(0~99)
fill(arr0, arr0+100, 0);
int arr1[100] = {0};//最簡單的初始化方式,但只能用在一維陣列
int arr2[100];
for(int i = 0; i < n; i++){
arr2[i] = 0;
}//用for跑一次迴圈初始化
fill(陣列頭, 陣列尾, 值)
迴圈就是跑過一次陣列賦值為零
賦值
int arr[100];
fill(arr, arr+100, 0);//要記得初始化喔
for(int i = 0; i < 100; i++){
arr[i] = i;
}
輸入輸出
int arr[100];
fill(arr, arr+100, 0);//要記得初始化喔
for(int i = 0; i < 100; i++){
std::cin >> arr[i];
std::cout << arr[i];
}
題目
多維陣列
宣告+初始化
多維陣列的初始化直接用for跑過一次比較簡單,所以這裡用for
int arr[100][100];
for(int i = 0; i < 100; i++){
for(int j = 0; j < 100; j++){
arr[i][j] = 0;
}
}
其實跟一維陣列沒什麼兩樣
int arr[100][100];
for(int i = 0; i < 100; i++){
for(int j = 0; j < 100; j++){
arr[i][j] = i*10+j;
}
}
for(int i = 0; i < 100; i++){
for(int j = 0; j < 100; j++){
std::cout << arr[i][j] << "\n";
}
}
題曰們
字元
char
一個字元character
一些char
常見特殊字元 | 表示方法 |
---|---|
換行 | '\n' |
水平定位 | '\t' |
字串結尾 | '\0' |
' | '\'' |
\ | '\\' |
" | '\"' |
回車 | '\r' |
倒退 | '\b' |
字串
可以伸縮的字元陣列以及很多其他功能
#include <string>
string a = "pancake";
cout << a << '\n';
pancake
string a;
cin >> a;
cout << a << '\n';
pancake
pancake
string a = "pancake";
cout << a[0] << '\n'
<< a[6] << '\n'
<< a[2] << '\n';
p
e
n
string a = "pancakesoooooooyummy";
cout << a.size() << '\n';
cout << a.length() << '\n';
20
20
A.size() or A.length()
回傳字串A的長度
string s1 = "pancake";
string s2 = "yummy";
string s3 = s1 + s2;
cout << s3 << '\n';
pancakeyummy
用+直接連(+=也行)
string s1 = "abcd";
string s2 = "1234";
if(s1 > s2) {
cout << "s1 > s2\n";
}
s1 > s2
用>、<、==、!=.....
按照字典序比較
*字典序:按照字在字典中出現的順序進行排列
string str = "physics is so hard";
cout << str.find("hard") << '\n';
14
.find(想找的字串,起點)
回傳第一個出現子字串的起始位置
沒有找到回傳string::npos
string str = "Wow is so diannnn";
cout << str.insert(4, "IvanLo ") << '\n';
Wow IvanLo is so diannnn
使用.insert(位置,想插入的字串)
使用.erase(起點,長度)
string str = "pancakenotyummy";
str.erase(7, 3);
cout << str << '\n';
pancakeyummy
練習時間