Trang

Ngẫu hứng

Ảnh của Tôi
Momen
Khi tối trời thì nhìn cũng đẹp trai sáng sủa , im lặng không nói thì cũng có vẻ thông minh hiểu biết, đi ngủ rồi thì cũng hiền lành củ khoai, đứng một mình thì cũng có vẻ nổi trội
Xem hồ sơ hoàn chỉnh của tôi

Tổng số lượt xem trang

Được tạo bởi Blogger.
28 thg 3, 2010

Sử dụng vector ( một dạng mảng động ) trong C++.

Trong C++ có một cách nữa là dùng vector. Vector là một mảng có thể co giãn chiều dài tùy ý. Phần tử của vector được truy nhập bằng toán tử []. Số phần tử được cho bằng hàm size(). Bạn có thể xem thêm các phương thức khác của vector ở đây: http://www.cplusplus.com/reference/stl/vector/


Ví dụ
Code:
#include 
#include 
using namespace std;

int main ()
{
unsigned int i;

// constructors used in the same order as described above:
vector first;                                // empty vector of ints
vector second (4,100);                       // four ints with value 100
vector third (second.begin(),second.end());  // iterating through second
vector fourth (third);                       // a copy of third

// the iterator constructor can also be used to construct from arrays:
int myints[] = {16,2,77,29};
vector fifth (myints, myints + sizeof(myints) / sizeof(int) );

cout << "The contents of fifth are:";  for (i=0; i < return="">


Để ứng dụng nó vào một vấn đề cụ thể . Như ví dụ sau :

Code:
void TestArray(void)
{
typedef struct tagConNguoi
{
char * Ten;
BYTE Tuoi;
char * SoThich;
}ConNguoi;

ConNguoi Toi, Ban;

Toi.Ten ="Tran Van A";
Toi.Tuoi = 26;
//Khai báo như thế nào để nhập được 2 SoThich ?
Toi.SoThich[0] = "Xem phim";
Toi.SoThich[1] = "Choi game";

Toi.Ten ="Dai Ca Huynh";
Toi.Tuoi = 28;
//Khai báo như thế nào để nhập được 4 SoThich ?
Toi.SoThich[0] = "Xem phim";
Toi.SoThich[1] = "Choi game";
Toi.SoThich[2] = "Du lich";
Toi.SoThich[3] = "Nghe nhac";

}
Và để giải quyết nó ta làm như sau :

Code:
using std::string;
using std::vector;
...
vector myHobbies;
myHobbies.push_back ("Watching movies");
myHobbies.push_back ("Playing games");

...
vector yourHobbies;
yourHobbies.push_back ("Watching Movies");
yourHobbies.push_back ("Playing Games");
yourHobbies.push_back ("Travelling");
yourHobbies.push_back ("Listening to Music");
Khi dùng vector/string bác nhớ sử dụng reserve/erase/clear để tối ưu hóa việc sử dụng bộ nhớ (mặc dù STL containers tự quản lý mấy vụ này).

0 nhận xét: