English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات C++

کنترل جریان C++

الوظائف في C++

آرایه‌ها و رشته‌های C++

ساختارهای داده C++

کلاس‌ها و اشیاء C++

المراجع في C++

الوراثة في C++

دليل STL C++

دستورالعمل C++

روش استفاده از توابع at() و مثال‌های C++ map

map (المعجمة) في STL C++

C ++ map at()این توابع برای دسترسی بهکلید ارزشبرای دسترسی به عناصر map، اگر کلید مورد نظر در map وجود ندارد، استثنا می‌اندازدout_of_rangeاستثنا.

نحوه‌ی نوشتن

فرض کنید کلید ارزشk، نحوه‌ی نوشتن:

mapped_type& at(const key_type& k);
const mapped_type& at(const key_type& k) const;

پارامتر

k:کلیدهای ارزشی برای دسترسی به عناصر که ارزش map دارند.

مقدار بازگشتی

این از کلیدهای ارزشی برای بازگرداندن مرجع به ارزش عناصر map استفاده می‌کند.

مثال 1

دعونا مثال ساده‌ای برای دسترسی به عناصر بررسی کنیم.

#include <iostream>
#include <string>
#include <map>  
int main ()
{
  map<string,int> m = {
                { ";A", 10 },
                { ";B", 20 },
                { ";C", 30 } };
  برای (auto& x: m) {
    cout << x.first << ": " << x.second << '\n';
  }
  return 0;
}

الإخراج:

A: 10
B: 20	
C: 30

در آن، توابع at() برای دسترسی به عناصر map استفاده می‌شود.

مثال 2

دعونا مثال ساده‌ای را بررسی کنیم که از کلیدهای ارزشی برای افزودن عناصر استفاده می‌کند.

#include <iostream>  
#include <string>  
#include <map>  
  
using namespace std;  
int main ()
{
  map<int,string> mymap= {
                { 101, ";" },
                { 102, ";" },
                { 103, ";" } };
  mymap.at(101) = ";w3codebox"; 
  mymap.at(102) = ";.";
  mymap.at(103) = ";com";
//چاپ ارزش کلید 101، یعنی w3codebox
  cout<<mymap.at(101); 
 // چاپ ارزش کلید 102، یعنی.
  cout<<mymap.at(102);
 // چاپ ارزش کلید 103، یعنی com	
  cout<<mymap.at(103);
  return 0;
}

الإخراج:

oldtoolbag.com

در مثال بالا، از توابع at() برای اضافه کردن عناصر پس از آغاز استفاده شد.

مثال 3

دعونا مثال ساده‌ای را برای تغییر ارزش مرتبط با کلید ببینیم.

#include <iostream>  
#include <string>  
#include <map>  
  
using namespace std;  
int main ()
{
  map<int,string> mymap= {
                { 100, "Nikita"},
                { 200, "Deep"  },
                { 300, "Priya" },
                { 400, "Suman" },
                { 500, "Aman"  }};
                
  cout<<"عناصر:" <<endl;
  for (auto& x: mymap) {
    	cout << x.first << ": " << x.second << '\n';
  }
  mymap.at(100) = "Nidhi"; // تغییر ارزش کلید 100 به Nidhi
  mymap.at(300) = "Pinku"; // تغییر ارزش کلید 300 به Pinku
  mymap.at(500) = "Arohi"; // تغییر ارزش کلید 500 به Arohi
  
  
  cout<<"\nعناصر تغییر یافته:" <<endl;
  for (auto& x: mymap) {
    	cout << x.first << ": " << x.second << '\n';
  }
  
  return 0;
}

الإخراج:

عناصر:
100: Nikita
200: Deep
300: Priya
400: Suman
500: Aman
عناصر تغییر یافته:
100: Nidhi
200: Deep
300: Pinku
400: Suman
500: Arohi

در مثال بالا، توابع at() برای تغییر ارزش مرتبط با کلید استفاده شد.

مثال 4

دعونا مثال ساده‌ای را برای مدیریت استثنای "بعد از محدوده" ببینیم.

#include <iostream>  
#include <string>  
#include <map>  
  
using namespace std;  
int main ()
{
  map<char,string> mp= {
                { 'a',"Java"},
                { 'b', "C++"  },
                { 'c', "Python" }};
            
    cout<<endl<<mp.at('a');
    cout<<endl<<mp.at('b');
    cout<<endl<<mp.at('c');
    
    try {
        mp.at('z'); 
          // لأن لا يوجد مفتاح لهذا القيمة z في map، فإنه سيقوم بإطلاق استثناء
        
    }
        cout << endl << "Out of Range Exception at " << e.what();
}

الإخراج:

Java
C++
Python
استثناء Out of Range في map::at

تم إطلاق استثناء out_of_range لأن لا يوجد مفتاح لهذا القيمة z في map.

map (المعجمة) في STL C++