พื้นฐาน
โปรแกรมที่ใช้เขียน
โค้ดเริ่มต้น
#include <bits/stdc++.h>
using namespace std;
int main() {
return 0;
}
bits/stdc++.hเป็น library ครอบจักรวาลusing namespace stdใช้เพื่อความสะดวกเดิมต้องเขียน
std::cout << "Hello World!";ในการแสดงผลHello World!
ถ้ามี
using namespace stdจะไม่ต้องพิมพ์std::ก็คือจะเหลือ
cout << "Hello World!;พอ
Comments
คอมเม้นท์ไว้บอกคอมว่าไม่ต้องรันบรรทัดนั้นๆ ทำได้สองแบบ
// line comment
/*
block
comment
*/
Variables Data Types
ในภาษา C++ จำเป็นจะต้องประกาศ “ชนิด” ของตัวแปรเสมอ (ต่างจาก Python)
ชนิดที่พบบ่อยคือ
ชนิด |
ขนาด (byte) |
|
|---|---|---|
|
1 |
ค่าความจริง true, false (0-1) |
|
2 |
ตัวอักษร |
|
4 |
จำนวนเต็ม |
|
8 |
จำนวนเต็มที่เก็บค่าได้มากกว่า |
|
4 |
จำนวนจริง |
|
8 |
จำนวนจริงที่เก็บค่าได้มากกว่า |
สาเหตุที่มีชนิดเดียวกันที่เก็บค่าได้แตกต่างกันเพราะการจองพื้นที่ memory ขนาดไม่เท่ากัน
Input/Output
ใช้
cinในการรับค่า โดยที่cinจะดูชนิดของตัวแปรให้ตอนที่รับค่า
#include <bits/stdc++.h>
using namespace std;
int main() {
int a;
cin >> a;
return 0;
}
หากพิมพ์ 5 หลังจากรันโปรแกรมแล้ว a จะมีค่าเท่ากับ
5 ที่เป็น integer
ถ้า
#include <bits/stdc++.h>
using namespace std;
int main() {
char a;
cin >> a;
return 0;
}
แล้วพิมพ์ 5 หลังจากรันโปรแกรมแล้ว a จะมีค่าเท่ากับ
'5' ที่เป็น character
ตัวอย่างเช่น
#include <bits/stdc++.h>
using namespace std;
int main() {
char a;
int b;
cin >> a >> b;
int c = a;
cout << c << " " << b;
return 0;
}
แล้วพิมพ์ 5 5 จะได้ผลลัพธ์เป็น 53 5 เนื่องจาก
character '5' มีค่า ascii เป็น 53 (ถูกแปลงค่า)
'\n'เป็น special character ที่ใช้สำหรับขึ้นบรรทัดใหม่ในการแสดงผล เช่น
#include <bits/stdc++.h>
using namespace std;
int main() {
char a;
int b;
cin >> a >> b;
int c = a;
cout << c << "\n" << b;
return 0;
}
แล้วพิมพ์ 5 5 จะได้ผลลัพธ์เป็น
53
5
สังเกตว่า
coutต้องใช้เป็นท่อน ๆ คือส่ง<<ได้ทีละตัวแปรหรือทีละ string เท่านั้นเช่นเดียวกัน
cinที่ใช้เป็นท่อน ๆ คือรับ>>เข้าทีละตัวแปร โดยตัด input ตามประเภทตัวแปร
Control Structures
condition
if-else if-else
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";
loop
while
int i = 0;
while (i < 10) {
cout << i << " ";
i++;
}
for
for (int i = 0; i < 10; i++) {
cout << i << " ";
}
Arrays
ใน C++ นั้นตัวแปรทุกชนิดสามารถทำเป็นตัวแปรชุด (Array) ได้ด้วยการใส่วงเล็บ
[] ด้านหลังชื่อตัวแปร เช่น
จาก int a เป็นการประกาศตัวแปรที่เป็นจำนวนเต็มหนึ่งจำนวน
สามารถเป็น int a[10] เป็นการประกาศตัวแปรที่เป็นจำนวนเต็ม
10 จำนวน โดยจะเรียกสมาชิกได้ เช่น
a[0] เป็นการเรียกสมาชิกตัวแรกใน array นั้น
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
int a[20];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
return 0;
}
ตัวอย่างด้านบนจะเป็นการรับค่า n เพื่อที่จะรับจำนวนเต็มต่ออีก n จำนวน (ใช้ต่อในเงื่อนไขของ for
loop)
จากนั้นรับค่าเข้าสู่ a[i] ไปเรื่อย ๆ โดย i = {0, 1, …, n}
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
int a[20];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int sm = 0;
for (int i = 0; i < n; i++) {
sm += a[i];
}
cout << sm;
return 0;
}
ตัวอย่างด้านบนเป็นการนำค่าที่รับเข้ามาไปใช้หาผลรวมต่อในตัวแปร sm
Strings
ใน C++ มี string ให้ใช้ใน STL ซึ่งถูกรวมอยู่ใน
bits/stdc++.h แล้ว
จากที่ภาษา C ธรรมดาจะต้องใช้เป็น array of characters จึงสะดวกขึ้นเยอะ
#include <bits/stdc++.h>
using namespace std;
int main() {
string a;
cin >> a;
cout << a;
return 0;
}
ตัวอย่างด้านบนเป็นการรับค่า string แล้วส่งออกเลย
Functions
#include <bits/stdc++.h>
using namespace std;
int addint(int a, int b) {
return a + b;
}
int main() {
cout << addint(1, 4);
return 0;
}
ตัวอย่างด้านบนเป็นการสร้างฟังก์ชัน f(a, b) = a + b
โดยให้ชื่อว่า addint พร้อมตัวอย่างการเรียกใช้
Array หลายมิติ
#include <bits/stdc++.h>
using namespace std;
int main() {
int a[5][5];
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
return 0;
}