C ++ เรียงลำดับเวกเตอร์ของคู่

C Reiyng Ladab Wek Texr Khxng Khu



C++ อำนวยความสะดวกในการแสดงเวกเตอร์ของคู่และเรียงลำดับเวกเตอร์ของคู่ มีคอนเทนเนอร์ในภาษา C++ ที่เก็บค่าสองค่าที่แมปเข้าหากันเรียกว่า 'คู่' และ 'เวกเตอร์ของคู่' ซึ่งเป็นเวกเตอร์ที่มีคู่เหล่านี้หลายคู่อยู่ในนั้น การเรียงลำดับหมายถึงการจัดเรียงข้อมูลตามลำดับจากน้อยไปมากหรือจากมากไปน้อยตามความต้องการ ที่นี่ เราจะเรียนรู้วิธีจัดเรียงเวกเตอร์ของคู่ในการเขียนโปรแกรม C++ เราสามารถจัดเรียงเวกเตอร์ของคู่ตามลำดับ 'จากน้อยไปมาก' และ 'มากไปหาน้อย' ในภาษา C++ เราสามารถจัดเรียงเวกเตอร์ของคู่ได้อย่างง่ายดายโดยใช้วิธี 'sort()' เรามาเขียนโค้ดที่นี่เพื่อเรียงลำดับเวกเตอร์ของคู่กัน

ตัวอย่างที่ 1:

มาเริ่มโค้ดด้วยการรวมไฟล์ส่วนหัวไว้ที่นี่ซึ่งก็คือ “bits/stdc++.h” หลังจากมีไฟล์ส่วนหัวนี้แล้ว เราไม่จำเป็นต้องรวมไฟล์ส่วนหัวเพิ่มเติมเนื่องจากมีไลบรารีที่จำเป็นทั้งหมด จากนั้นเราเพิ่มเนมสเปซ “std” และเรียกใช้ฟังก์ชัน “main()”







ตอนนี้ เราประกาศ 'เวกเตอร์ของคู่' ชื่อ 'my_vect' และใส่ประเภทข้อมูล 'int' เพื่อให้ข้อมูลที่เราป้อนในคู่เหล่านี้เป็นประเภทข้อมูล 'จำนวนเต็ม' ด้านล่างนี้ เราจะเริ่มต้นอาร์เรย์สองตัวด้วยชื่อ “my_arr1[]” และ “my_arr2[]” ที่นี่ เราเริ่มต้นค่าแรกและค่าที่สองของคู่ด้วยค่าอาร์เรย์เหล่านี้ จากนั้น เราใช้ลูป “for” เพื่อป้อนค่าเหล่านี้ลงในเวกเตอร์ของคู่ ที่นี่เราใช้ฟังก์ชัน 'push_back()' ซึ่งช่วยในการแทรกค่าที่ส่วนท้ายของเวกเตอร์ ภายในฟังก์ชันนี้ เราวางตัวเลือก 'make_pair' ซึ่งใช้ในการสร้างวัตถุคู่ของสองค่า 'my_arr1' และ 'my_arr2'



หลังจากนี้ เราจะพิมพ์เวกเตอร์ของคู่โดยใช้ลูป 'for' อีกครั้ง ที่นี่ คีย์เวิร์ด 'แรก' และ 'ที่สอง' จะถูกเพิ่มเพื่อรับค่าที่หนึ่งและที่สองของเวกเตอร์ของคู่ สิ่งนี้จะพิมพ์เวกเตอร์ของคู่โดยไม่ต้องเรียงลำดับที่นี่ ตอนนี้เราใช้ฟังก์ชัน 'sort()' เพื่อจัดเรียงเวกเตอร์ของคู่ ในที่นี้ ฟังก์ชัน 'begin()' และ 'end()' ถูกใช้โดยส่งผ่านจุดเริ่มต้นและจุดสิ้นสุดของเวกเตอร์ของคู่ไปยังฟังก์ชัน 'sort()' นี้



หลังจากการเรียงลำดับ เราจะพิมพ์เวกเตอร์ของคู่อีกครั้งโดยใช้ 'cout' และวางคีย์เวิร์ดตัวแรกและตัวที่สองด้วย 'my_vec[i]' ตอนนี้ เวกเตอร์ที่เรียงลำดับของคู่ก็ถูกพิมพ์ที่นี่เช่นกัน





รหัส 1:

#รวม

ใช้เนมสเปซมาตรฐาน;

int หลัก ( )

{

เวกเตอร์ < คู่ < คุณคุณ > > my_vect;

int my_arr1 [ ] = { 49 , ยี่สิบ , สิบห้า , 56 } ;

int my_arr2 [ ] = { 37 , ยี่สิบ , 90 , 55 } ;

int num = ขนาดของ ( my_arr1 ) / ขนาดของ ( my_arr1 [ 0 ] ) ;

สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < ไม่ว่า ฉัน++ )

my_vect.push_back ( make_pair ( my_arr1 [ ฉัน ] ,my_arr2 [ ฉัน ] ) ) ;

ศาล << 'ก่อนที่จะเรียงลำดับเวกเตอร์ของคู่: ' << จบ;

สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < ไม่ว่า ฉัน++ )

{

ศาล << my_vect [ ฉัน ] .อันดับแรก << ' '

<< my_vect [ ฉัน ] .ที่สอง << จบ;

}

เรียงลำดับ ( my_vect.begin ( ) , my_vect.end ( ) ) ;

ศาล << ' \n หลังจากเรียงลำดับเวกเตอร์ของคู่แล้ว: ' << สิ้นสุด ;

สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < ไม่ว่า ฉัน++ )

{

ศาล << my_vect [ ฉัน ] .อันดับแรก << ' '

<< my_vect [ ฉัน ] .ที่สอง << จบ;

}

กลับ 0 ;

}



เอาท์พุท:

เวกเตอร์ของคู่ก่อนการเรียงลำดับจะแสดงขึ้นก่อน จากนั้น เราใช้เทคนิคการเรียงลำดับกับเวกเตอร์ของคู่นี้ จากนั้น เวกเตอร์ที่เรียงลำดับของคู่ก็จะแสดงที่นี่เช่นกัน เราจะเห็นว่าเวกเตอร์ของคู่นั้นเรียงลำดับจากน้อยไปมากตามองค์ประกอบแรกของคู่

ตัวอย่างที่ 2:

ในตัวอย่างนี้ ตอนนี้เราสร้าง 'เวกเตอร์ของคู่' ที่เรียกว่า 'vector_1' และกำหนดประเภทข้อมูล 'int' ซึ่งหมายความว่าข้อมูลที่เราป้อนในคู่เหล่านี้เป็นประเภทข้อมูล 'จำนวนเต็ม' อาร์เรย์สองตัวที่มีชื่อ “first_arr[]” และ “second_arr[]” ได้รับการเตรียมใช้งานดังต่อไปนี้ ที่นี่ เราเริ่มต้นค่าของอาร์เรย์เหล่านี้สำหรับค่าของคู่ที่หนึ่งและที่สอง

ต่อไป เราจะป้อนค่าเหล่านี้ลงในเวกเตอร์ของคู่โดยใช้ลูป 'for' ตัวเลือก “make_pair” ซึ่งใช้เพื่อสร้างอ็อบเจ็กต์คู่ของสองค่าจากอาร์เรย์ “first_arr[]” และ “second_arr[]” จะถูกวางไว้ภายในเมธอด “push_back()” ซึ่งช่วยในการแทรกรายการที่ จุดสิ้นสุดของเวกเตอร์

ต่อไป เราใช้ลูป “for” อีกครั้งเพื่อส่งออกเวกเตอร์ของคู่ เพื่อให้ได้ค่าที่หนึ่งและที่สองของเวกเตอร์ของคู่ คำหลัก 'แรก' และ 'ที่สอง' จะถูกแทรก สิ่งนี้จะส่งออกเวกเตอร์คู่โดยไม่มีการเรียงลำดับ ณ จุดนี้ ตอนนี้เราเรียงลำดับ 'เวกเตอร์ของคู่' โดยใช้ฟังก์ชัน 'sort()' ตามลำดับจากมากไปน้อย ในฟังก์ชันนี้ เราวางฟังก์ชัน 'rbegin()' และ 'rend()' เพื่อย้อนกลับการเรียงลำดับและเริ่มจากจุดสิ้นสุดของค่าของคู่นี้ โดยจะจัดเรียงตามลำดับจากมากไปน้อย

หลังจากการเรียงลำดับ เราใช้ 'cout' เพื่อเอาท์พุตเวกเตอร์ของคู่ต่างๆ หลังจากใช้ลูป 'for' อีกครั้ง โดยแทรกคีย์เวิร์ดตัวแรกและตัวที่สองด้วย 'vector_1[i]' ใน 'cout' นี่คือที่ที่เวกเตอร์ที่เรียงลำดับของการจับคู่จะถูกพิมพ์ด้วย

รหัส 2:

#รวม

ใช้เนมสเปซมาตรฐาน;

int หลัก ( )

{

เวกเตอร์ < คู่ < คุณคุณ > > เวกเตอร์_1;

int first_arr [ ] = { 77 , 29 , 97 , สิบห้า } ;

int Second_arr [ ] = { 35 , 89 , 64 , 25 } ;

int s = ขนาดของ ( first_arr ) / ขนาดของ ( first_arr [ 0 ] ) ;

สำหรับ ( อินท์ ไอ = 0 ; ฉัน < ส; ฉัน++ )

vector_1.push_back ( make_pair ( first_arr [ ฉัน ] , Second_arr [ ฉัน ] ) ) ;

ศาล << 'ก่อนที่จะเรียงลำดับ:' << จบ;

สำหรับ ( อินท์ ไอ = 0 ; ฉัน < ส; ฉัน++ ) {

ศาล << เวกเตอร์_1 [ ฉัน ] .อันดับแรก << ' ' << เวกเตอร์_1 [ ฉัน ] .ที่สอง

<< จบ;

}

เรียงลำดับ ( vector_1.rเริ่มต้น ( ) , vector_1.rend ( ) ) ;

ศาล << สิ้นสุด << 'หลังจากการเรียงลำดับ:' << จบ;

สำหรับ ( อินท์ ไอ = 0 ; ฉัน < ส; ฉัน++ ) {

ศาล << เวกเตอร์_1 [ ฉัน ] .อันดับแรก << ' ' << เวกเตอร์_1 [ ฉัน ] .ที่สอง

<< จบ;

}

กลับ 0 ;

}

เอาท์พุท:

เวกเตอร์ที่เรียงลำดับล่วงหน้าของคู่จะแสดงที่นี่ก่อน ตามด้วยเวกเตอร์ที่เรียงลำดับของคู่ ซึ่งจะแสดงที่นี่เช่นเดียวกันหลังจากใช้กระบวนการเรียงลำดับแล้ว ดังที่เราเห็น องค์ประกอบเริ่มต้นของแต่ละคู่จะกำหนดวิธีจัดเรียงเวกเตอร์ของคู่จากมากไปน้อย

ตัวอย่างที่ 3:

ที่นี่ เราสร้างฟังก์ชันประเภท 'bool' ชื่อ 'sortBySecElement' เพื่อจัดเรียงหมายเลขเวกเตอร์ ในฟังก์ชันนี้ เราวางเงื่อนไข 'value1.second < value2.second' ซึ่งจะเปรียบเทียบค่าที่สองของเวกเตอร์ทั้งสองคู่และส่งกลับตัวเลข

จากนั้น “main()” จะถูกเรียกใช้ในส่วนต่อไปนี้โดยที่เราสร้างเวกเตอร์ของคู่ ข้อมูลต่อไปนี้จะเริ่มต้นอาร์เรย์สองตัวชื่อ “new_array1[]” และ “new_aray2[]” ที่นี่ เราแทรกค่าของคู่ในอาร์เรย์เหล่านี้ ต่อไป เราใช้ลูป “for” เพื่อป้อนค่าเหล่านี้ลงในเวกเตอร์ของคู่ ภายในเมธอด “push_back()” ซึ่งช่วยในการแทรกรายการที่ส่วนท้ายของเวกเตอร์คือตัวเลือก “make_pair” ซึ่งใช้เพื่อสร้างวัตถุคู่ของสองค่าจาก “new_array1[]” และ “new_array2[ ]” อาร์เรย์

จากนั้นเราจะส่งออกเวกเตอร์ของคู่โดยใช้ลูป 'for' อื่น คำสำคัญ 'แรก' และ 'ที่สอง' จะถูกแทรกเพื่อให้ได้ค่าที่หนึ่งและที่สองของเวกเตอร์ของคู่ ไม่มีการเรียงลำดับในขั้นตอนนี้ และเวกเตอร์คู่จะถูกเอาท์พุต ตอนนี้เราใช้ฟังก์ชัน 'sort()' เพื่อเรียงลำดับ จุดเริ่มต้นและจุดสิ้นสุดของเวกเตอร์ของคู่จะถูกส่งไปยังฟังก์ชัน 'sort()' ในกรณีนี้ผ่านการใช้ฟังก์ชัน 'begin()' และ 'end()' นอกจากนี้เรายังวางฟังก์ชัน 'sortBySecElement' ที่เราสร้างขึ้นก่อนหน้านี้ไว้ในฟังก์ชัน 'sort()' นี้ โดยที่เรากำหนดรูปแบบของเวกเตอร์การเรียงลำดับของคู่จากองค์ประกอบที่สองของเวกเตอร์ตามลำดับจากน้อยไปหามาก

ตอนนี้เราใช้ลูป 'for' อีกครั้ง จากนั้น คำหลักคำแรกและคำที่สองจะถูกแทรกด้วย “new_vec[i]” ใน “cout” เพื่อสร้างเวกเตอร์ของคู่อีกครั้งหลังจากการเรียงลำดับ นี่คือจุดที่เวกเตอร์ที่เรียงลำดับของคู่ต่างๆ ตามลำดับจากน้อยไปหามากจะถูกพิมพ์ออกมาด้วย

รหัส 3:

#รวม

ใช้เนมสเปซมาตรฐาน;

บูล sortBySecElement ( คู่ const < คุณคุณ > & ค่า 1,

คู่ const < คุณคุณ > & ค่า2 )

{

กลับ ( ค่า1.วินาที < ค่า2.วินาที ) ;

}

int หลัก ( )

{

เวกเตอร์ < คู่ < คุณคุณ > > ใหม่_สิ่งใหม่

int new_arr1 [ ] = { 3. 4 , 29 , 65 , 48 } ;

int new_arr2 [ ] = { 67 , 19 , 54 , 7 } ;

ค่า int = ขนาดของ ( new_arr1 ) / ขนาดของ ( new_arr1 [ 0 ] ) ;

สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < ค่า; ฉัน++ )

new_vec.push_back ( make_pair ( new_arr1 [ ฉัน ] ,new_arr2 [ ฉัน ] ) ) ;

ศาล << 'ก่อนที่จะเรียงลำดับ:' << สิ้นสุด ;

สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < ค่า; ฉัน++ )

{

ศาล << ใหม่_สิ่งใหม่ [ ฉัน ] .อันดับแรก << ' '

<< ใหม่_สิ่งใหม่ [ ฉัน ] .ที่สอง << จบ;

}

เรียงลำดับ ( new_vec.เริ่มต้น ( ) , new_vec.end ( ) , sortBySecElement ) ;

ศาล << สิ้นสุด << 'หลังจากการเรียงลำดับ:' << สิ้นสุด ;

สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < ค่า; ฉัน++ )

{

ศาล << ใหม่_สิ่งใหม่ [ ฉัน ] .อันดับแรก << ' '

<< ใหม่_สิ่งใหม่ [ ฉัน ] .ที่สอง << จบ;

}

กลับ 0 ;

}

เอาท์พุท:

ในที่นี้ เวกเตอร์ที่เรียงลำดับของคู่จะปรากฏขึ้น และการเรียงลำดับจะดำเนินการตามค่าที่สองของคู่ องค์ประกอบที่สองของคู่จะถูกจัดเก็บโดยเรียงลำดับจากน้อยไปหามากและแสดงไว้ที่นี่

บทสรุป

คู่มือนี้เป็นข้อมูลเกี่ยวกับ “sort vector of pairs” ในภาษา C++ เราสำรวจ 'เวกเตอร์ของคู่' โดยไม่เรียงลำดับ เช่นเดียวกับการเรียงลำดับ 'เวกเตอร์ของคู่' ตามลำดับจากน้อยไปหามาก เราอธิบายสิ่งนี้ด้วยตัวอย่างที่เราจัดเรียง 'เวกเตอร์ของคู่' ตามตัวเลขตัวแรกและตัวที่สองของคู่เหล่านี้ในการเขียนโปรแกรม C++ เราได้เรียนรู้ว่าวิธีการ 'sort()' ช่วยในการเรียงลำดับนี้