banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Hỏi về mảng trong C++  XML
  [Programming]   Hỏi về mảng trong C++ 22/12/2008 06:02:17 (+0700) | #1 | 163489
[Avatar]
haivienpq
Member

[Minus]    0    [Plus]
Joined: 24/09/2008 23:11:31
Messages: 4
Offline
[Profile] [PM] [Email] [Yahoo!]
Các bác giúp em bài này với nha: Cho một mảng X có n phần tử,viết thủ tục thanh lọc mảng sao cho không có hai phần tử nào giống nhau.
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 22/12/2008 09:22:35 (+0700) | #2 | 163502
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Sort rồi quét, thằng nào kề mà giống thì memove để dồn tới (nếu chỉ dùng 1 mãng), dùng 2 mãng thì skip thằng giống. Tui quen nói nôm na và nông dân vậy thôi.
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 25/12/2008 04:34:48 (+0700) | #3 | 163777
phananhsang
Member

[Minus]    0    [Plus]
Joined: 06/06/2008 15:44:38
Messages: 17
Offline
[Profile] [PM]
Tiện đây cho em hỏi luôn nhé. Một chương trình demo của opencv nó viết thế này

Code:
const int MAX_COUNT = 500;
CvPoint2D32f* points[2] = {0,0}


sau đó nó dùng thế này

Code:
points[0] = (CvPoint2D32f*)cvAlloc(MAX_COUNT*sizeof(points[0][0]));
 points[1] = (CvPoint2D32f*)cvAlloc(MAX_COUNT*sizeof(points[0][0]));

hoặc
Code:
points[1][k++] = points[1][i];


CvPoint2D32f* points[2] ở đây khai báo mảng 1 chiều có 2 phần tử vậy thì points[1][i] nghĩa là gì ?
còn MAX_COUNT*sizeof(points[0][0]) ý nghia là gì nhỉ vì bình thường em chỉ hay thấy viết kiểu sizeof(int) thế này thôi ?
nhờ các bác giúp nhé
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 25/12/2008 05:43:47 (+0700) | #4 | 163780
[Avatar]
4hfoo
Elite Member

[Minus]    0    [Plus]
Joined: 29/01/2007 01:50:20
Messages: 115
Offline
[Profile] [PM]
Bạn nên kiếm thêm tài liệu về mảng 1 chiều, 2 chiều trong C/C++ sẽ hiểu rõ...

phananhsang wrote:

CvPoint2D32f* points[2] ở đây khai báo mảng 1 chiều có 2 phần tử vậy thì points[1][i] nghĩa là gì ?
 


Bạn nói đúng ở phần points là mảng 1 chiều có 2 phần tử. Ở đây, mỗi phần tử sẽ chứa giá trị CvPoint2D32f* (hay là địa chỉ của vùng nhớ đến một biến kiểu CvPoint2D32f). Nói cách khác, CvPoint2D32f* là kiểu con trỏ trỏ đến mảng 1 chiều, mỗi phần tử của mảng 1 chiều này có kiểu là CvPoint2D32f.

(giống như trong khai báo int* arr, arr là mảng 1 chiều gồm các phần tử kiểu int)

Như vậy, points ở đây là mảng 2 chiều gồm 2 dòng, mỗi dòng sẽ chứa MAX_COUNT phần tử (dựa theo phần khai báo bộ nhớ động trong ví dụ bạn đưa ra). Vì vậy có thể truy cập mảng points theo 2 chiều, ví dụ points[1][i], points[0][0] ...

phananhsang wrote:

MAX_COUNT*sizeof(points[0][0]) ý nghia là gì nhỉ?
 

Ở đây, chương trình đang cấp phát bộ nhớ động cho từng dòng của mảng points (points[0] và points[1]).
Mỗi dòng cần MAX_COUNT phần tử, và kích thước bộ nhớ của mỗi phần tử là sizeof(CvPoint2D32f) chứ không phải sizeof(int) như bạn thường thấy. Chương trình dùng sizeof(points[0][0]) để tính size của một phần tử.

Thân.

P.S: Bạn cứ "tiện đây cho em hỏi ...", thế nào cũng có mod phàn nàn ... smilie
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 26/12/2008 02:33:16 (+0700) | #5 | 163875
[Avatar]
khatkhaotrithuc
Member

[Minus]    0    [Plus]
Joined: 20/03/2008 00:45:13
Messages: 38
Offline
[Profile] [PM]
Mảng hai chiều là mảng một chiều mà mỗi phần tử của nó lại là một mảng một chiều.

Bác 4hfoo đã giải thích khá rõ ràng rồi đó bạn..
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 26/12/2008 09:41:28 (+0700) | #6 | 163934
phananhsang
Member

[Minus]    0    [Plus]
Joined: 06/06/2008 15:44:38
Messages: 17
Offline
[Profile] [PM]
cảm ơn các bác đã giải đáp tận tình, đọc mãi cũng hiểu được sơ sơ.
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 28/12/2008 14:19:33 (+0700) | #7 | 164197
blackstrider99
Member

[Minus]    0    [Plus]
Joined: 01/06/2008 14:14:01
Messages: 5
Offline
[Profile] [PM]
Tui thì chẳng hiểu gì luôn nè. Bác nào có tài liệu học Java share cho tui đc ko. Post nhầm mục nhưng cầu may vậy
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 03/01/2009 15:21:52 (+0700) | #8 | 165025
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Hãy tìm hiểu thuật toán unique của C++ STL tại đây http://www.sgi.com/tech/stl/unique.html
Cách dùng unique duyệt tuần tự nên đơn giản nhưng có thể là chậm nhất, có thể tìm hiểu cách dùng dynamic list sẽ giảm độ phức tạp và nhanh hơn.
Hibernating
[Up] [Print Copy]
  [Question]   Re: Hỏi về mảng trong C++ 05/01/2009 23:48:11 (+0700) | #9 | 165232
[Avatar]
khatkhaotrithuc
Member

[Minus]    0    [Plus]
Joined: 20/03/2008 00:45:13
Messages: 38
Offline
[Profile] [PM]
cảm ơn bác Z0rr0, link của bác cho rất hay. smilie smilie
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|