Professional Documents
Culture Documents
Vector
Vector
Đʀ có thʀ xài vectors thì bɞn phɠi thêm cho nó 1 header file sau :
PHP Code:
#include <vector>
và phɠi có
PHP Code:
using namespace std
YY
Câu lʄnh trên đʈnh nghĩa 1 vector có kiʀu int. Chú ý kiʀu cͧa vector đưͣc đʀ trong 2 cái ngoɴc nh͍n. Vì kíck thư͛c
cͧa vector có thʀ nâng lên, cho nên không cɤn khai báo cho nó có bao nhiêu phɤn tͭ cũng đưͣc, hoɴc nɼu thích
khai báo thì bɞn cũng có thʀ khai báo như sau :
PHP Code:
vector<int> A(10);
Câu lʄnh trên khai báo A là 1 vector kiʀu int có 10 phɤn tͭ. Tuy nhiên như đã nói ͟ trên, mɴc dù size = 10, nhưng
khi bɞn add vào thì nó vɨn cho phép như thư͝ng.
Và ta cũng có thʀ kh͟i tɞo cho các phɤn tͭ trong vector bɮng cú pháp đơn giɠn như sau :
PHP Code:
vector<int> A(10, 2);
Trong câu lʄn trên thì 10 phɤn tͭ cͧa vector A sɺ đưͣc kh͟i tɞo bɮng 2.
Đ͓ng th͝i ta cũng có thʀ kh͟i tɞo cho 1 vector bɮng giá trʈ cͧa 1 vector khác, ví dͥ :
PHP Code:
vector<int> A(10,2);
vector<int> B(A);
V͛i dòng lʄnh trên thì vector B sɺ là bɠn sao cͧa vector A.
M͙t s͑ ví dͥ vɾ khai báo vector :
PHP Code:
vector<float> A;
vector<int> B(15);
vector<char> C(25, 'A');
int main()
{
const int NUM_EMPLOYEES = 5; «« Number of employees
vector<int> hours(NUM_EMPLOYEES); «« Mӛt vector hours kiӅu int
vector<double> payRate(NUM_EMPLOYEES); «« Mӛt vector payRate kiӅu
««double
int index;
«« Nhүp dӱ liӉu
cout << "Enter the hours worked by " << NUM_EMPLOYEES;
cout << " employees and their hourly rates.\n";
for (index = 0; index < NUM_EMPLOYEES; index++)
{
cout << "Hours worked by employee #" << (index + 1);
cout << ": ";
cin >> hours[index];
cout << "Hourly pay rate for employee #";
cout << (index + 1) << ": ";
cin >> payRate[index];
}
OuuY
Code:
Chú ý vɾ chương trình trên là cɠ 2 vector đɾu có size là 5, và chương trình sɺ dùng vòng lɴp for đʀ lưu các giá trʈ
cͧa cɠ 2 vector :
PHP Code:
for (index = 0; index < NUM_EMPLOYEES; index++)
{
cout << "Hours worked by employee #" << (index + 1);
cout << ": ";
cin >> hours[index];
cout << "Hourly pay rate for employee #";
cout << (index + 1) << ": ";
cin >> payRate[index];
}
Y
Y
cYY YYY
YY
YuY
Chú ý bɞn không thʀ dùng toán tͭ [] đʀ truy xuɢt các phɤn tͭ mà nó không t͓n tɞi, nghĩa là ví dͥ vector size = 10,
mà bɞn truy xuɢt 11 là banh xác. Đʀ thêm vào 1 giá trʈ cho vector mà nó không có size trư͛c hoɴc đã full thì ta
dùng hàm thành viên "push_back". Ví dͥ :
PHP Code:
A.push_back(25);
V͛i câu lʄnh trên thì giɠ sͭ ta đang có 1 vector A kiʀu int, v͛i size bao nhiêu đó, nɼu nó chưa full thì 25 sɺ thay cho
phɤn tͭ cu͑i cùng. Còn nɼu không full thì nó sɺ tɞo 1 ch͗ m͛i dành cho thɮng 25 này. Đoɞn code dư͛i đây sɺ mô
tɠ cách dùng cͧa hàm push_back này :
c YY
PHP Code:
#include <iostream>
#include <iomanip>
#include <vector> «« Needed to define vectors
using namespace std;
int main()
{
vector<int> hours; «« hours bây h là vector rәng
vector<double> payRate; «« payRate cũng là 1 vector rәng
int numEmployees;
int index;
«« Nhүp dӱ liӉu
cout << "Enter the hours worked by " << numEmployees;
cout << " employees and their hourly rates.\n";
for (index = 0; index < numEmployees; index++)
{
int tempHours; «« To hold the number of hours entered
double tempRate; «« To hold the payrate entered
Ouu
Code:
Không gi͑ng v͛i mãng, dùng vector ta có thʀ thông báo đưͣc kíck thư͛c hiʄn th͝i mà nó đang có v͛i cú pháp cͱc
kì đơn giɠn như sau :
PHP Code:
int numberValues = A.size()
c YY+
PHP Code:
#include <iostream>
#include <vector>
using namespace std;
«« Function prototype
void showValues(vector<int>);
int main()
{
vector<int> values;
««**************************************************
«« Chú ý đӍnh nghĩa cөa hàm showValues *
«« Hàm này nhүn vector kiӅu int là đӓi, và giá trӍ *
«« cөa 1 phҩn tӯ sҿ đưӥc in ra * *
««**************************************************
Ouu
Code:
0
2
4
6
8
10
12
Press any key to continue . . .
c !
YY,YY
Y
Y- YYY
Y
Cú pháp cũng đơn giɠn như sau :
PHP Code:
A.pop_back();
YY.
PHP Code:
«« Chương trình này mô tҥ cách xài cөa hàm pop_back()
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> values;
«« oá là đây!!.
cout << "Popping a value from the vector...\n";
values.pop_back();
cout << "The size of values is now " << values.size() << endl;
«« oá tiӁp.
cout << "Popping a value from the vector...\n";
values.pop_back();
cout << "The size of values is now " << values.size() << endl;
Y
Ouu
Code:
c YY5
PHP Code:
«« Mô tҥ cách dùng hàm clear().
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> values(100);
Đʀ xác đʈnh vector có r͗ng hay không ta dùng hàm thành viên empty(), hàm này trɠ vɾ true nɼu vector r͗ng, và
false ngưͣc lɞi. Cú pháp :
PHP Code:
if(A.empty() == true){
cout << "No values in A \n";
}
c YY9
PHP Code:
«« This program demonstrates the vector's empty member function.
#include <iostream>
#include <vector>
using namespace std;
«« Function prototype
double avgVector(vector<int>);
int main()
{
vector<int> values; «« Khai báo vector values kiӅu int
int numValues; «« sӓ lưӥng pҩn tӯ
double average; «« biӁn lưu giá trӍ trung bình
««*************************************************************
«« Hàm argVector này sҿ nhүn 1 đӓ sӓ là 1 vector *
«« kiӅu int. hàm này trҥ vӃ giá trӍ trung bình cөa các phҩn tӯ *
«« cөa vector. NӁu vector rәng thì lәi sҿ đưӥc báo,
««và hàm trҥ vӃ 0.0 *
««*************************************************************
OuuY
Code:
OuuY
Code:
O Y:YYY
Y;Y<
Y
=Y)0* : Trɠ vɾ giá trʈ cͧa phɤn tͭ thͩ element cͧa vector. Ví dͥ :
PHP Code:
x = A.at(5);
- 6)* : Trɠ vɾ s͑ lưͣng các phɤn tͭ mà vector đang lưu trͯ. Ví dͥ :
PHP Code:
x = A.capacity();
-
)* : Đɠo thͩ tͱ cͧa các phɤn tͭ( phɤn tͭ đɤu thành phɤn tͭ cu͑i...) Ví dͥ :
PHP Code:
A.reverse();
- >)
*? : Đ͕i ch͗ n͙i dung cͧa vector1 v͛i vector2. Ví dͥ :
PHP Code:
vect1.swap(vect2);
- ()0@Y
0u* : Đʈnh nghĩa lɞi kíck thư͛c bɮng elements, m͗i elements này sɺ đưͣc kh͟i tɞo v͛i giá
trʈ là value. Ví dͥ :
PHP Code:
A.resize(5,1);