ณ แผนที่ C++

N Phaenthi C



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

ไวยากรณ์ของ map.at() Function

เราจำเป็นต้องปฏิบัติตามไวยากรณ์ด้านล่างเพื่อใช้ฟังก์ชัน map.at() ใน C++







Map_variable.at ( กุญแจ / คู่ค่า )



เราได้ใช้วัตถุแผนที่ซึ่งมีชื่อว่า “Map_variable” ด้วยเครื่องหมาย ที่() การทำงาน. ส่งคืนองค์ประกอบที่อ้างอิงโดยตรงและชี้ไปที่ค่าคีย์ที่ระบุ แผนผังคีย์ข้อมูลส่วนใหญ่ขึ้นอยู่กับช่วงของแผนที่ หากไม่เป็นเช่นนั้น มีความเป็นไปได้ที่ข้อยกเว้นหรือข้อผิดพลาดจะถูกส่งกลับในเวลาดำเนินการซึ่งแสดงว่าค่านั้นอยู่นอกเหนือช่วงที่กำหนดไว้ ตอนนี้ เราจะใช้ไวยากรณ์นี้ในรหัส C++ เพื่อแสดงว่ามันใช้งานได้



ตัวอย่างที่ 1: การใช้ฟังก์ชัน map.at()

โปรแกรมถูกนำมาใช้เพื่อแสดงฟังก์ชั่น map.at เราได้เชื่อมโยง ที่() ทำงานด้วย แผนที่() ฟังก์ชันที่รับค่าอินพุตบางส่วนและแสดงฟังก์ชันการทำงาน สำหรับสิ่งนี้ เราได้กรอกส่วนหัวของโปรแกรมโดยการนำเข้าโมดูลแผนที่ด้วยโมดูลอื่นที่จำเป็นสำหรับ c++ จากนั้นเราก็เรียก หลัก() ฟังก์ชันสำหรับการประกาศแผนที่จากคลาสแผนที่ วัตถุของแผนที่มีป้ายกำกับว่า 'MyMap' เราสร้างรายการแผนที่โดยระบุคีย์และค่าของแผนที่





หลังจากนี้เราเรียก map.at() ฟังก์ชันที่แม็พสตริงที่ระบุเป็นจำนวนเต็ม จากนั้นเราพิมพ์ผลลัพธ์จาก map.at() ฟังก์ชันจากลูป for for loop ใช้การอ้างอิงคำหลัก 'อัตโนมัติ' คีย์เวิร์ดอัตโนมัติระบุว่าตัวเริ่มต้นจะลบประเภทของตัวแปรออกจากตัวแปรที่ประกาศโดยอัตโนมัติ คำสั่ง cout จะพิมพ์คู่ตามลำดับที่ส่งคืนจาก map.at() การทำงาน.

#include

#include

#include


int หลัก ( )

std: :map < std::string,int > MyMap = {

{ 'แอปเปิ้ล', 0 } ,

{ 'องุ่น' , 0 } ,

{ 'มะม่วงหลายลูก' , 0 } }

MyMap.at ( 'แอปเปิ้ล' ) = 5 ;

MyMap.at ( 'องุ่น' ) = 10 ;

MyMap.at ( 'มะม่วงหลายลูก' ) = 6 ;

สำหรับ ( รถยนต์ & m: MyMap ) {

std::cout << ม.เฟิร์ส << ': ' << ม.วินาที << '\n' ; }

< แข็งแกร่ง > กลับ 0 ;

}



ตอนนี้ เราได้ผลลัพธ์จากโปรแกรมด้านบนที่ใช้ map.at() การทำงาน. จำนวนเต็มที่ระบุทั้งหมดซึ่งอยู่ในช่วงจะแสดงเทียบกับแต่ละสตริง

ตัวอย่างที่ 2: การใช้ฟังก์ชัน map.at() สำหรับ out_of_range Exception

เราได้พูดคุยกันผ่านโปรแกรมตัวอย่างการใช้ map.at ฟังก์ชันในภาษา C++ ตอนนี้เราได้ดำเนินการอื่น map.at ในโปรแกรม แต่คราวนี้จะส่งคืนค่าที่แสดงภายในแผนที่และข้อยกเว้น out_of_range เมื่อไม่ได้ระบุคีย์ เนื่องจากเราต้องใช้ map.at ดังนั้นเราจึงได้เพิ่มโมดูลแผนที่ในส่วนหัว จากนั้น เราได้กำหนดฟังก์ชันหลักที่ส่ง 'โมฆะ' เป็นพารามิเตอร์

ภายในฟังก์ชันหลัก เราได้เริ่มต้นตัวสร้างรายการโดยการสร้างวัตถุแผนที่เป็น 'm1' รายการแผนที่มีสตริงของคีย์และค่าจำนวนเต็มต่างกัน จากนั้นเราพิมพ์คีย์ 'i' โดยส่งผ่าน map.at การทำงาน. เราใช้บล็อกดักจับ ในบล็อกการลอง เราได้นำเสนอคีย์ที่ไม่มีอยู่ในตัว map.at การทำงาน. เนื่องจากคีย์อยู่นอกช่วง ดังนั้นบล็อกการลองจะทำให้เกิดข้อผิดพลาด

#include

#include

ใช้เนมสเปซ std;

int หลัก ( โมฆะ ) {


แผนที่ < ถ่าน int > ม1 = {

{ ฉัน , 1 } ,

{ 'ผม' , สอง } ,

{ 'n' , 3 } ,

{ 'ใน' , 4 } ,

{ 'เอ็กซ์' , 5 } ,

} ;



ศาล << 'ค่าคีย์แผนที่ m1['i'] = ' << m1.at ( 'ผม' ) << ปลาย;



ลอง {

m1.at ( 'ย' ) ;

} จับ ( ค่าคงที่ out_of_range & และ ) {

cerr << 'ข้อผิดพลาดที่' << e.อะไร ( ) << จบ;

}



กลับ 0 ;

}

เราสามารถเห็นภาพจากหน้าจอเอาต์พุตที่ map.at() ฟังก์ชันจะคืนค่าคีย์ที่มีอยู่ในแผนที่เท่านั้น คีย์ที่อยู่นอกช่วงจะโยนข้อผิดพลาดเมื่อข้อผิดพลาดปรากฏขึ้นเมื่อเราส่งคีย์ 'y' ใน map.at การทำงาน.

ตัวอย่างที่ 3: การใช้ฟังก์ชัน map.at() สำหรับการเข้าถึงองค์ประกอบ

องค์ประกอบสามารถเข้าถึงได้โดยใช้องค์ประกอบที่ระบุของตัวเลขจากฟังก์ชัน map.at มาปรับใช้โปรแกรมนี้เพื่อบรรลุคำสั่งข้างต้น เราได้กำหนดโมดูลแผนที่เป็นอันดับแรกในส่วนหัวเนื่องจากจำเป็นสำหรับการเข้าถึง map.at การทำงาน. จากนั้น เรามีฟังก์ชันหลักที่คลาสแผนที่เริ่มต้นวัตถุแผนที่เป็น 'แผนที่' ด้วยอ็อบเจ็กต์ 'แผนที่' นี้ เราได้สร้างคีย์ของสตริงและกำหนดค่าของตัวเลขให้กับคีย์เหล่านั้น หลังจากนั้นเราก็เรียก map.at ฟังก์ชันที่มีคำสั่ง cout และส่งผ่านคีย์ 'ตัวอย่าง' เป็นอินพุต

#include

#include

#include

ใช้เนมสเปซ std;

int หลัก ( )

{

แผนที่ < สตริง int > แผนที่;

แผนที่ [ 'ของฉัน' ] = 1 ;

แผนที่ [ 'ค++' ] = สอง ;

แผนที่ [ 'แผนที่' ] = 3 ;

แผนที่ [ 'ตัวอย่าง' ] = 4 ;

ศาล << Map.at ( 'ตัวอย่าง' ) ;

กลับ 0 ;

}

องค์ประกอบหลักจะถูกส่งคืนเทียบกับคีย์ที่ระบุใน map.at การทำงาน. ผลลัพธ์จะให้ค่า '4' เนื่องจากตัวเลขนี้ถูกกำหนดให้กับองค์ประกอบหลัก 'ตัวอย่าง' ของแผนที่

ตัวอย่างที่ 4: การใช้ฟังก์ชัน map.at() เพื่อแก้ไของค์ประกอบ

ลองพิจารณาตัวอย่างง่ายๆ ของการปรับเปลี่ยนค่าที่เกี่ยวข้องกับค่าคีย์ เราได้สร้างรายการแผนที่โดยเรียกคลาสแผนที่และสร้างวัตถุ 'M1' เราได้กำหนดค่าสตริงให้กับแต่ละคีย์ของแผนที่ จากนั้นเราต้องใช้ map.at การทำงาน. ใน map.at เราได้ใช้คีย์ที่ระบุและกำหนดค่าสตริงใหม่ให้กับคีย์เหล่านั้น ตอนนี้ ค่าเหล่านี้จะถูกแก้ไขด้วยค่าก่อนหน้า ด้วยความช่วยเหลือของ for loop เราได้ทำซ้ำแต่ละองค์ประกอบจากแผนที่และแสดงเป็นผลลัพธ์

#include

#include

#include


ใช้เนมสเปซ std;


int หลัก ( )

{

แผนที่ < int,สตริง > M1 = {

{ 10 , 'ค++' } ,

{ ยี่สิบ , 'จาวา' } ,

{ 30 , 'หลาม' } ,

{ 40 , 'คม' } ,

{ ห้าสิบ , 'เปิด' } } ;




M1.at ( ยี่สิบ ) = 'เทนเซอร์โฟลว์' ;

M1.at ( 30 ) = 'ลินุกซ์' ;

M1.at ( ห้าสิบ ) = 'สกาล่า' ;

ศาล << ' \n องค์ประกอบ:' << ปลาย;

สำหรับ ( รถยนต์ & x: M1 ) {

ศาล << x.แรก << ': ' << x.วินาที << '\n' ;

}


กลับ 0 ;

}

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

บทสรุป

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