11.10 Sorted-Range Algorithms  Searching First or Last Possible Positi การแปล - 11.10 Sorted-Range Algorithms  Searching First or Last Possible Positi ไทย วิธีการพูด

11.10 Sorted-Range Algorithms Sear


11.10 Sorted-Range Algorithms

Searching First or Last Possible Position

ForwardIterator
lower_bound (ForwardIterator beg, ForwardIterator end, const T& value)

ForwardIterator
lower_bound (ForwardIterator beg, ForwardIterator end, const T& value,
BinaryPredicate op)

ForwardIterator
upper_bound (ForwardIterator beg, ForwardIterator end, const T& value)

ForwardIterator
upper_bound (ForwardIterator beg, ForwardIterator end, const T& value,
BinaryPredicate op)

• lower_bound() returns the position of the first element that has a value equal to or greater than
value. This is the first position where an element with value value could get inserted without
breaking the sorting of the range [beg,end).
• upper_bound() returns the position of the first element that has a value greater than value. This
is the last position where an element with value value could get inserted without breaking the
sorting of the range [beg,end).
• All algorithms return end if there is no such value.
• op is an optional binary predicate to be used as the sorting criterion:
op (elem1 ,elem2)
• The caller has to ensure that the ranges are sorted according to the sorting criterion on entry.
• To obtain the result from both lower_bound() and upper_bound(), use equal_range(),
which returns both (see the next algorithm).
• Associative containers provide equivalent member functions that provide better performance (see
Section 8.3.3, page 405).
• Complexity: logarithmic for random-access iterators, linear otherwise (at most, log(numElems)
+ 1 comparisons; but for other than random-access iterators, the number of operations to step
through the elements is linear, making the total complexity linear).

The following program demonstrates how to use lower_bound() and upper_bound():

// algo/bounds1.cpp

#include "algostuff.hpp"
using namespace std;

int main()
{
list coll;
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!

11.10 อัลกอริทึม Sorted ช่วง

ค้นแรกหรือตำแหน่งสุดท้ายได้

ForwardIterator
lower_bound (ForwardIterator วอน สิ้นสุด ForwardIterator, T& ค่า const ค่า)

ForwardIterator
lower_bound (ForwardIterator วอน สิ้นสุด ForwardIterator ค่า const ค่า T&,
BinaryPredicate op)

ForwardIterator
upper_bound (ForwardIterator วอน สิ้นสุด ForwardIterator, T& ค่า const ค่า)

ForwardIterator
upper_bound (ForwardIterator วอน สิ้นสุด ForwardIterator ค่า const ค่า T&,
BinaryPredicate op)

• lower_bound() ส่งกลับค่าตำแหน่งขององค์ประกอบ first ที่มีค่าเท่ากับ หรือมากกว่า
ค่า นี้คือตำแหน่ง first ที่องค์ประกอบที่ มีค่าค่าสามารถรับแทรกโดย
แบ่งเรียงลำดับช่วง [วอน จบ)
• upper_bound() ส่งกลับค่าตำแหน่งขององค์ประกอบ first ที่มีค่ามากกว่าค่า นี้
คือตำแหน่งสุดท้ายที่องค์ประกอบที่ มีค่าค่าสามารถรับแทรก โดยแบ่งการ
เรียงลำดับช่วง [วอน จบ)
•อัลกอริทึมทั้งหมดกลับสิ้นสุดไม่มีค่าดังกล่าวไม่
• op เป็นเพรดิเคตไบนารีตัวเลือกที่จะใช้เป็นเงื่อนไขการเรียงลำดับ:
op (elem1, elem2)
•ผู้เรียกเพื่อให้แน่ใจว่า ช่วงจะเรียงลำดับตามเงื่อนไขการเรียงลำดับในรายการได้
•รับผลจาก lower_bound() และ upper_bound(), equal_range() ใช้,
ที่ส่งคืนทั้งสอง (ดูอัลกอริทึมต่อไป)
เก็บเกี่ยวข้อง•มีฟังก์ชันสมาชิกเท่าที่มีประสิทธิภาพ (ดู
ส่วน 8.3.3 หน้า 405)
•ความซับซ้อน: ลอการิทึมสำหรับการเข้าถึงแบบสุ่ม iterators เส้นอื่น (มากที่สุด log(numElems)
เปรียบเทียบ 1 แต่อื่น ๆ กว่าสุ่มเข้า iterators หมายเลขการดำเนินงานเพื่อ
ผ่านองค์ประกอบไม่เชิงเส้น ทำซับซ้อนรวมเชิงเส้น)

โปรแกรมต่อไปนี้สาธิตวิธีการใช้ lower_bound() และ upper_bound():

/ / algo/bounds1.cpp

#include "algostuff.hpp"
ใช้ namespace มาตรฐาน

int main()
{
รายการ < int > coll;
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!

11.10 เรียงตามระดับขั้นตอนวิธีการค้นหาเป็นครั้งแรกหรือครั้งล่าสุดที่เป็นไปได้ตำแหน่งForwardIterator LOWER_BOUND (ForwardIterator ขอ, ForwardIterator สิ้นสุด const T & ค่า) ForwardIterator LOWER_BOUND (ForwardIterator ขอ, ForwardIterator สิ้นสุด const T & ค่าBinaryPredicate op) ForwardIterator UPPER_BOUND (ForwardIterator ขอ, ForwardIterator สิ้นสุด const T & ค่า) ForwardIterator UPPER_BOUND (ForwardIterator ขอ, ForwardIterator สิ้นสุด const T & ค่าBinaryPredicate op) • LOWER_BOUND () กลับตำแหน่งขององค์ประกอบแรกที่มีค่าเท่ากับหรือสูงกว่าค่า นี้เป็นตำแหน่งแรกที่องค์ประกอบที่มีมูลค่าค่าจะได้รับการแทรกโดยไม่ต้องทำลายการเรียงลำดับของช่วง [ขอจบ) • UPPER_BOUND () กลับตำแหน่งขององค์ประกอบแรกที่มีค่ามากกว่าค่า นี้เป็นตำแหน่งสุดท้ายที่องค์ประกอบที่มีมูลค่าค่าจะได้รับการแทรกโดยไม่ทำลายการเรียงลำดับของช่วง [ขอจบ) •ขั้นตอนวิธีการทั้งหมดกลับมาในตอนท้ายถ้าไม่มีค่าเช่น•สหกรณ์เป็นคำกริยาไบนารีตัวเลือกที่จะใช้เป็น เกณฑ์การเรียงลำดับ: op (elem1, elem2) •โทรมีเพื่อให้แน่ใจว่าช่วงที่จะถูกจัดเรียงตามเกณฑ์การเรียงลำดับที่รายการ•หากต้องการได้รับผลจากทั้ง LOWER_BOUND () และ UPPER_BOUND () ใช้ equal_range () ซึ่ง ผลตอบแทนที่ทั้งสอง (ดูขั้นตอนถัดไป) บรรจุอยู่ร่วม•ให้การทำงานเทียบเท่าสมาชิกที่ให้ประสิทธิภาพที่ดีขึ้น (ดูมาตรา 8.3.3, หน้า 405) •ซับซ้อน: ลอการิทึมเพื่อ iterators random-access เชิงเส้นอย่างอื่น (ที่ส่วนใหญ่เข้าสู่ระบบ (numElems ) + 1 การเปรียบเทียบ แต่อื่น ๆ กว่า iterators random-access, จำนวนของการดำเนินงานที่จะก้าวผ่านองค์ประกอบเป็นเส้นตรงทำให้เส้นความซับซ้อนรวม) โปรแกรมต่อไปนี้แสดงให้เห็นถึงวิธีการใช้ LOWER_BOUND () และ UPPER_BOUND () / / algo/bounds1.cpp # include "algostuff.hpp" โดยใช้ namespace std; int หลัก () { รายการ












































Coll;
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!


น่าจะเรียงช่วงขั้นตอนวิธีการค้นหาตำแหน่งแรก หรือสุดท้ายที่สุด

forwarditerator
lower_bound ( forwarditerator ขอร้อง forwarditerator จบ Const ค่า& t )

forwarditerator
lower_bound ( forwarditerator ขอร้อง forwarditerator จบ Const T &ค่า
binarypredicate OP )

forwarditerator
upper_bound ( forwarditerator ขอร้อง forwarditerator ทราบในที่สุด ค่า& t )


forwarditeratorupper_bound ( forwarditerator ขอร้อง forwarditerator จบ Const T &ค่า
binarypredicate OP )

- lower_bound() คืนตำแหน่งของจึงตัดสินใจเดินทางองค์ประกอบที่มีค่ามากกว่าหรือเท่ากับ
ค่า นี้เป็นตำแหน่งที่ RST จึงเป็นธาตุที่มีมูลค่าอาจถูกแทรกโดยไม่
แบ่งการเรียงลำดับของช่วง [ ขอร้อง จบ )
บริการ upper_bound() คืนตำแหน่งของจึงตัดสินใจเดินทางองค์ประกอบที่มีคุณค่ามากกว่ามูลค่า นี้
เป็นตำแหน่งสุดท้ายที่เป็นธาตุที่มีมูลค่าอาจถูกแทรกโดยไม่ทำลาย
การเรียงลำดับของช่วง [ ขอร้อง จบ )
- ใช้คืนจบ ถ้าไม่มีค่า
- OP คือตัวเลือกไบนารีประโยคที่จะใช้เป็นเกณฑ์การเรียง OP ( elem1 :
,
elem2 )- โทรได้เพื่อให้แน่ใจว่าช่วงที่เรียงไว้ตามเกณฑ์ในการเรียงลำดับรายการ
- จะได้รับผลจาก lower_bound() upper_bound() ทั้งสองและใช้ equal_range()
) ทั้ง , ซึ่ง ( ดูวิธีต่อไป )
- ภาชนะให้ฟังก์ชันเชื่อมโยงสมาชิกเทียบเท่าที่ให้ประสิทธิภาพที่ดีขึ้น ( ดู
ส่วน 8.3.3 หน้า 405 )
- ความซับซ้อน :ลอการิทึมสำหรับการเข้าถึงแบบสุ่ม iterators เชิงอื่น ( ที่ที่สุด log ( numelems )
1 เปรียบเทียบ แต่นอกจากการเข้าถึงแบบสุ่ม iterators , จํานวนของการดำเนินการขั้นตอน
ผ่านองค์ประกอบที่เป็นเส้นตรง ทำให้ความซับซ้อนรวมเชิงเส้น )

โปรแกรมต่อไปนี้แสดงให้เห็นถึงวิธีการใช้และ lower_bound() upper_bound() :

/ / /

#อัลกอ bounds1.cpp รวมถึง " algostuff . เอชพี "
ใช้ namespace std ;
1 {

main() รายการ < 1 > coll ;
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: