ไลบรารี C ++ - <vector>
บทนำ
เวกเตอร์คือคอนเทนเนอร์ลำดับที่สามารถเปลี่ยนขนาดได้ คอนเทนเนอร์คือวัตถุที่เก็บข้อมูลประเภทเดียวกัน ลำดับคอนเทนเนอร์จัดเก็บองค์ประกอบตามลำดับเชิงเส้นอย่างเคร่งครัด
เวกเตอร์เก็บองค์ประกอบในตำแหน่งหน่วยความจำที่อยู่ติดกันและช่วยให้สามารถเข้าถึงองค์ประกอบใด ๆ ได้โดยตรงโดยใช้ตัวดำเนินการตัวห้อย [] ซึ่งแตกต่างจากอาร์เรย์เวกเตอร์สามารถย่อหรือขยายได้ตามต้องการในขณะทำงาน การจัดเก็บเวกเตอร์จะถูกจัดการโดยอัตโนมัติ
เพื่อรองรับการย่อและขยายฟังก์ชันการทำงานที่รันไทม์ vector container อาจจัดสรรพื้นที่เก็บข้อมูลเพิ่มเติมเพื่อรองรับการเติบโตที่เป็นไปได้ดังนั้นคอนเทนเนอร์จึงมีความจุจริงมากกว่าขนาด ดังนั้นเมื่อเทียบกับอาร์เรย์เวกเตอร์จะใช้หน่วยความจำมากกว่าเพื่อแลกกับความสามารถในการจัดการพื้นที่จัดเก็บและขยายแบบไดนามิกอย่างมีประสิทธิภาพ
เวกเตอร์ขนาดศูนย์ก็ใช้ได้เช่นกัน ในกรณีนั้น vector.begin () และ vector.end () ชี้ไปที่ตำแหน่งเดียวกัน แต่พฤติกรรมของการเรียก front () หรือ back () นั้นไม่ได้กำหนดไว้
คำจำกัดความ
ด้านล่างนี้คือคำจำกัดความของ std :: vector จากไฟล์ส่วนหัว <vector>
template < class T, class Alloc = allocator<T> > class vector;
พารามิเตอร์
T - ประเภทขององค์ประกอบที่มีอยู่
T อาจถูกแทนที่ด้วยประเภทข้อมูลอื่น ๆ รวมถึงประเภทที่ผู้ใช้กำหนด
Alloc - ประเภทของวัตถุผู้จัดสรร
โดยค่าเริ่มต้นเทมเพลตคลาสตัวจัดสรรจะถูกใช้ซึ่งกำหนดรูปแบบการจัดสรรหน่วยความจำที่ง่ายที่สุดและไม่ขึ้นกับค่า
ประเภทสมาชิก
ประเภทสมาชิกต่อไปนี้สามารถใช้เป็นพารามิเตอร์หรือประเภทการส่งคืนโดยฟังก์ชันสมาชิก
ซีเนียร์ | ประเภทสมาชิก | คำจำกัดความ |
---|---|---|
1 | value_type | T (พารามิเตอร์แรกของเทมเพลต) |
2 | จัดสรร _type | Alloc (พารามิเตอร์ที่สองของเทมเพลต) |
3 | เอกสารอ้างอิง | value_type & |
4 | const_reference | const value_type & |
5 | ตัวชี้ | value_type * |
6 | const_pointer | const value_type * |
7 | iterator | ตัววนซ้ำการเข้าถึงโดยสุ่มไปยัง value_type |
8 | const_iterator | ตัววนซ้ำการเข้าถึงโดยสุ่มไปยัง const value_type |
9 | reverse_iterator | std :: reverse_iterator <iterator> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | different_type | ptrdiff_t |
ฟังก์ชั่นจาก <vector>
ด้านล่างนี้คือรายการวิธีการทั้งหมดจากส่วนหัว <vector>
ตัวสร้าง
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | vector :: ตัว สร้างเริ่มต้นของเวกเตอร์ สร้างคอนเทนเนอร์ว่างโดยมีองค์ประกอบเป็นศูนย์ |
2 | เวกเตอร์ :: ตัว สร้างเติมเวกเตอร์ โครงสร้างภาชนะที่มีnองค์ประกอบและ assignd Valแต่ละองค์ประกอบ |
3 | เวกเตอร์ :: ตัว สร้างช่วงเวกเตอร์ สร้างคอนเทนเนอร์ที่มีองค์ประกอบจำนวนมากในช่วงแรกถึงสุดท้าย |
4 | vector :: ตัว สร้างสำเนาเวกเตอร์ สร้างคอนเทนเนอร์พร้อมสำเนาของแต่ละองค์ประกอบที่มีอยู่ในคอนเทนเนอร์x ที่มีอยู่ |
5 | เวกเตอร์ :: ตัวสร้างการย้ายเวกเตอร์ สร้างคอนเทนเนอร์ด้วยเนื้อหาของอื่น ๆ โดยใช้ความหมายการย้าย |
6 | เวกเตอร์ :: ตัว สร้างรายการเริ่มต้นเวกเตอร์ สร้างคอนเทนเนอร์จากรายการ initializer |
Destructor
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | เวกเตอร์ :: ~ เวกเตอร์ ทำลายคอนเทนเนอร์โดยการยกเลิกการจัดสรรหน่วยความจำคอนเทนเนอร์ |
ฟังก์ชั่นสมาชิก
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | เวกเตอร์ :: กำหนด รุ่นเติม กำหนดค่าใหม่ให้กับองค์ประกอบเวกเตอร์โดยแทนที่ค่าเก่า |
2 | เวกเตอร์ :: กำหนด เวอร์ชันช่วง กำหนดค่าใหม่ให้กับองค์ประกอบเวกเตอร์โดยแทนที่ค่าเก่า |
3 | เวกเตอร์ :: กำหนด เวอร์ชันรายการเริ่มต้น กำหนดค่าใหม่ให้กับองค์ประกอบเวกเตอร์โดยแทนที่ค่าเก่า |
4 | เวกเตอร์ :: ที่ ส่งกลับการอ้างอิงถึงองค์ประกอบที่อยู่ในตำแหน่งnในเวกเตอร์ |
5 | เวกเตอร์ :: ย้อนกลับ ส่งกลับการอ้างอิงถึงองค์ประกอบสุดท้ายของเวกเตอร์ |
6 | เวกเตอร์ :: เริ่มต้น ส่งคืนตัววนซ้ำการเข้าถึงโดยสุ่มที่ชี้ไปที่องค์ประกอบแรกของเวกเตอร์ |
7 | เวกเตอร์ :: ความจุ ส่งคืนขนาดของพื้นที่จัดเก็บที่จัดสรรซึ่งแสดงในรูปแบบขององค์ประกอบ |
8 | เวกเตอร์ :: cbegin ส่งคืนตัววนซ้ำการเข้าถึงแบบสุ่มคงที่ซึ่งชี้ไปที่จุดเริ่มต้นของเวกเตอร์ |
9 | เวกเตอร์ :: cend ส่งคืนตัววนซ้ำการเข้าถึงแบบสุ่มคงที่ซึ่งชี้ไปที่จุดเริ่มต้นของเวกเตอร์ |
10 | เวกเตอร์ :: ชัดเจน ทำลายเวกเตอร์โดยการลบองค์ประกอบทั้งหมดออกจากเวกเตอร์และกำหนดขนาดของเวกเตอร์เป็นศูนย์ |
11 | เวกเตอร์ :: crbegin ส่งคืนตัววนซ้ำแบบย้อนกลับคงที่ซึ่งชี้ไปที่จุดเริ่มต้นตัวย้อนกลับของคอนเทนเนอร์ |
12 | เวกเตอร์ :: crend ส่งคืนค่าตัววนซ้ำแบบย้อนกลับคงที่ซึ่งชี้ไปที่จุดสิ้นสุดด้านหลังของเวกเตอร์ |
13 | เวกเตอร์ :: ข้อมูล ส่งกลับตัวชี้ไปยังองค์ประกอบแรกของคอนเทนเนอร์เวกเตอร์ |
14 | เวกเตอร์ :: emplace ขยายคอนเทนเนอร์โดยการใส่องค์ประกอบใหม่ในตำแหน่ง |
15 | เวกเตอร์ :: emplace_back แทรกองค์ประกอบใหม่ที่ส่วนท้ายของเวกเตอร์ |
16 | เวกเตอร์ :: ว่างเปล่า ทดสอบว่าเวกเตอร์ว่างเปล่าหรือไม่ |
17 | เวกเตอร์ :: สิ้นสุด ส่งคืนตัววนซ้ำซึ่งชี้ไปยังองค์ประกอบที่ผ่านจุดสิ้นสุดในคอนเทนเนอร์เวกเตอร์ |
18 | เวกเตอร์ :: ลบตำแหน่งรุ่น ลบองค์ประกอบเดียวออกจากเวกเตอร์ |
19 | เวกเตอร์ :: ลบเวอร์ชันช่วง ลบองค์ประกอบเดียวออกจากเวกเตอร์ |
20 | เวกเตอร์ :: ด้านหน้า ส่งกลับการอ้างอิงถึงองค์ประกอบแรกของเวกเตอร์ |
21 | เวกเตอร์ :: get_allocator ส่งคืนตัวจัดสรรที่เกี่ยวข้องกับเวกเตอร์ |
22 | เวกเตอร์ :: แทรก เวอร์ชันองค์ประกอบเดียว ขยายตัววนซ้ำโดยการแทรกองค์ประกอบใหม่ที่ตำแหน่ง |
23 | เวกเตอร์ :: แทรก รุ่นเติม ขยายเวกเตอร์โดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
24 | เวกเตอร์ :: แทรก ช่วงรุ่น ขยายเวกเตอร์โดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
25 | เวกเตอร์ :: แทรก รุ่นย้าย ขยายเวกเตอร์โดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
26 | เวกเตอร์ :: แทรก เวอร์ชันรายการเริ่มต้น ขยายเวกเตอร์โดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
27 | เวกเตอร์ :: max_size ส่งคืนจำนวนองค์ประกอบสูงสุดที่เวกเตอร์ถือได้ |
28 | vector :: operator = copy version กำหนดเนื้อหาใหม่ให้กับเวกเตอร์โดยแทนที่เนื้อหาเก่าและปรับเปลี่ยนขนาดหากจำเป็น |
29 | เวกเตอร์ :: ตัวดำเนินการ = ย้ายเวอร์ชัน กำหนดเนื้อหาใหม่ให้กับเวกเตอร์โดยแทนที่เนื้อหาเก่าและปรับเปลี่ยนขนาดหากจำเป็น |
30 | vector :: operator = เวอร์ชันรายการ initializer กำหนดเนื้อหาใหม่ให้กับเวกเตอร์โดยแทนที่เนื้อหาเก่าและปรับเปลี่ยนขนาดหากจำเป็น |
31 | เวกเตอร์ :: ตัวดำเนินการ [] ผลตอบแทนอ้างอิงกับองค์ประกอบปัจจุบันที่สถานที่n |
32 | เวกเตอร์ :: pop_back ลบองค์ประกอบสุดท้ายออกจากเวกเตอร์และลดขนาดของเวกเตอร์ทีละรายการ |
33 | เวกเตอร์ :: push_back แทรกองค์ประกอบใหม่ที่ส่วนท้ายของเวกเตอร์และเพิ่มขนาดของเวกเตอร์ทีละรายการ |
34 | เวกเตอร์ :: rbegin ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปยังองค์ประกอบสุดท้ายของเวกเตอร์ |
35 | เวกเตอร์ :: การแสดงผล ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปที่ปลายด้านหลังของเวกเตอร์ |
36 | เวกเตอร์ :: สำรอง คำขอจองความจุเวกเตอร์อย่างน้อยเพียงพอที่จะมีองค์ประกอบn |
37 | เวกเตอร์ :: ปรับขนาด เปลี่ยนขนาดของเวกเตอร์ |
38 | เวกเตอร์ :: shrink_to_fit ขอให้คอนเทนเนอร์ลดความจุให้พอดีกับขนาด |
39 | เวกเตอร์ :: ขนาด ส่งคืนจำนวนองค์ประกอบที่มีอยู่ในเวกเตอร์ |
40 | เวกเตอร์ :: แลกเปลี่ยน แลกเปลี่ยนเนื้อหาของเวกเตอร์ด้วยเนื้อหาของเวกเตอร์x |
ฟังก์ชันที่ไม่มีสมาชิกมากเกินไป
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | ตัวดำเนินการ == ทดสอบว่าเวกเตอร์สองตัวเท่ากันหรือไม่ |
2 | ตัวดำเนินการ! = ทดสอบว่าเวกเตอร์สองตัวเท่ากันหรือไม่ |
3 | ตัวดำเนินการ < ทดสอบว่าเวกเตอร์แรกน้อยกว่าเวกเตอร์อื่นหรือไม่ |
4 | ตัวดำเนินการ <= ทดสอบว่าเวกเตอร์แรกน้อยกว่าหรือเท่ากับเวกเตอร์อื่นหรือไม่ |
5 | ตัวดำเนินการ> ทดสอบว่าเวกเตอร์แรกมีค่ามากกว่าเวกเตอร์อื่นหรือไม่ |
6 | ตัวดำเนินการ> = ทดสอบว่าเวกเตอร์แรกมีค่ามากกว่าหรือเท่ากับเวกเตอร์อื่นหรือไม่ |
7 | แลกเปลี่ยน แลกเปลี่ยนเนื้อหาของเวกเตอร์สองตัว |