Bài giảng Tin đại cương - Bài 8: Vector, struct - Vũ Thương Huyền

BÀI 8  
VECTOR, STRUCT  
Giảng viên:  
Vũ Thương Huyền – Khoa Công nghệ thông tin – ĐH Thủy Lợi  
Email:  
NỘI DUNG  
.Vector  
.Vector của vector  
.Struct  
KHÁI NIỆM VỀ VECTOR  
. Vector là mảng có thể thay đổi được số phần tử (mảng động)  
. Các phần tử lưu trữ ở các vị trí kế tiếp nhau trong bộ nhớ  
. Cung cấp các phương thức để thao tác với các phần tử  
. Khi sử dụng Vector cần khai báo thêm:  
#include <vector>  
KHAI BÁO VECTOR  
. Cú pháp:  
vector<kieudulieu> tenvector;  
vector<kieudulieu> tenvector(số-phần-tử);  
vector<kieudulieu> tenvector(số-phần-tử, giá-trị);  
vector<string> A; //Khai báo vector A chưa có phần tử nào  
vector<int> A(10); //Khai báo vector có 10 phần tử  
vector<float> B(10, 2.5); //Khai báo có khởi gán giá trị  
vector<float> C(B); //vector C là bản sao của vector B  
. Ví dụ:  
VÍ DỤ  
MẢNG MỘT CHIỀU  
. Ví dụ:  
SỬ DỤNG VỚI VECTOR  
. Ví dụ:  
CÁC TOÁN TỬ VÀ PHƯƠNG THỨC  
Toán tử/Phương thức  
Mô tả  
Gán vector  
=
Truy nhập tới phần tử của vector theo chỉ số  
Lấy số phần tử của vector  
[chỉ-số]  
.size()  
Thay đổi số phần tử của vector (có n phần tử)  
Truy nhập tới phần tử của vector theo chỉ số  
Truy nhập vào phần tử đầu tiên của vector  
Truy nhập vào phần tử cuối cùng của vector  
.resize(n)  
.at(chỉ-số)  
.front()  
.back()  
BÀI TẬP  
. Bài 1: Nhập vào một dãy n số nguyên. Tính tổng dãy số vừa nhập  
CÁC TOÁN TỬ VÀ PHƯƠNG THỨC  
0
3
8
1
5
2
3
4
6
5
4
6
7
8
2
V.resize(9)  
V.back()  
V.front()  
V.at(3)  
V[3]  
MÀN HÌNH HIỂN THỊ GÌ  
CÁC PHƯƠNG THỨC (tiếp)  
Phương thức  
Mô tả  
Thêm phần tử pt vào cuối dãy. Số phần tử của dãy tăng  
lên 1.  
.push_back(pt)  
Xoá phần tử khỏi dãy. Số phần tử của dãy giảm 1  
Chèn 1 phần tử vào vị trí pos của dãy  
Chèn n phần tử vào vị trí pos của dãy  
Xóa phần tử vị trí thứ pos của dãy.  
Xóa phần tử từ vị trí 1 đến vị trí 2 trong dãy  
Xóa hết các phần tử của vector  
.pop_back()  
.insert(pos, giatri)  
.insert(pos, n, giatri)  
.erase(pos)  
.erase(vt1, vt2)  
.clear()  
Hoán đổi 2 vector  
.swap(vector2)  
CÁC PHƯƠNG THỨC (tiếp)  
10  
0
3
8
1
5
2
3
4
6
5
4
6
V.push_back(10)  
10  
2
V.back()  
V.front()  
2
8
5
3
6
4
V.pop_back()  
4
V.front()  
V.back()  
VÍ DỤ  
Nhập vào một dãy số thực cho đến khi gặp số 0. Tính tổng dãy vừa nhập.  
THÊM PHẦN TỬ VÀO DÃY  
XÓA PHẦN TỬ TRONG DÃY  
BÀI TẬP  
. Bài 2: Nhập vào một dãy n số nguyên. Đưa ra dãy mới toàn các số chẵn.  
. Bài 3: Nhập vào một dãy n số thực. Đưa ra dãy mới là dãy đảo ngược  
của dãy ban đầu.  
BÀI TẬP  
. Bài 4: Đọc vào n số nguyên từ bàn phím. Xóa bỏ số ở vị trí thứ k của  
dãy, với k đọc vào từ bàn phím. Đưa dãy đã xóa ra màn hình.  
. Bài 5: Đọc vào n số (2<n<50). Đọc thêm một số x, chèn số x vào vị trí  
thứ 2 của dãy. Đưa dãy sau khi chèn ra màn hình  
. Bài 6: Đọc vào n số. Đọc thêm một số x, chèn số x vào vị trí thứ k của dãy  
với k đọc vào từ bàn phím. Nếu k>n thì thêm vào vị trí thứ n. Đưa dãy sau khi  
chèn ra màn hình  
MẢNG HAI CHIỀU – VECTOR CỦA VECTOR  
. Ma trận:  
. Mảng 2 chiều:  
3 4 5 2  
2 7 6 4  
8 5 9 1  
int a[3][4];  
. Vector:  
vector<vector<int> > a(3, vector<int>(4));  
Dấu cách  
MẢNG HAI CHIỀU  
#include <iostream>  
using namespace std;  
. Ví dụ:  
int main ()  
{
int a[20][30]; //khai bao ma tran  
int i, j, cot, hang;  
cout<<"Nhap so hang, cot cua ma tran: ";  
cin>>hang>>cot;  
for(i=0; i< hang; i++)//nhap gia tri cho mang  
for(j=0; j<cot; j++)  
{
cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];  
}
cout<<"\nMa tran vua nhap la:"<<endl;  
for(i=0; i< hang; i++)//hien thi  
{
for(j=0; j<cot; j++)  
cout<<a[i][j]<<" ";  
cout<<endl;  
}
}
Tải về để xem bản đầy đủ
pdf 26 trang baolam 44920 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin đại cương - Bài 8: Vector, struct - Vũ Thương Huyền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_tin_dai_cuong_bai_8_vector_struct_vu_thuong_huyen.pdf