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

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

تحكم في تدفق C++

الوظائف C++

مجموعات بيانات C++ & 字رات

هياكل بيانات C++

مفاهيم C++ & الكائنات

المراجع C++

الوراثة C++

دليل STL C++

دليل C++

استخدام دالة cbegin() في C++ map ومثال

map (المحلول) STL C++

C ++ map cbegin()الوظيفة تستخدم لتحويل iterator يشير إلى العنصر الأول من map قالب.

النحو

const_iterator cbegin() const noexcept;  //C++ 11 بعد

ملاحظة: iterator ثابت هو iterator يشير إلى محتوى ثابت.

المتغيرات

لا يوجد

النتيجة

يستعيد م迭代ر ثابت يشير إلى العنصر الأول من الخريطة.

مثال1

دعونا نرى مثالًا بسيطًا لدالة cbegin().

#include <iostream>
#include <map>
using namespace std;
int main ()
{
  map<char,string> mymap;
  mymap['b'] = "Java";
  mymap['a'] = "C++";
  mymap['c'] = "SQL";
  // 显示内容:
  for (auto it = mymap.cbegin(); it != mymap.cend(); ++it)
    cout <<(*it).first << " => " << (*it).second << '\n';
  return 0;
}

الإخراج:

a => C++
b => Java
c => SQL

في هذا، يستخدم دالة cbegin() لتقديم م迭代ر ثابت يشير إلى العنصر الأول من خريطة mymap.

مثال2

دعونا نرى مثالًا بسيطًا باستخدام دورة for-each لاستكشاف الخريطة.

#include <iostream>
#include <map>
#include <string>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
int main() {
 
	  map<string, int> m;
  m["Room1"] = 100;
  m["Room2"] = 200;
  m["Room3"] = 300;
 
   //使用std::for each和Lambda函数遍历一个map
    for_each(m.cbegin(), m.cend(),
		[](pair<string, int> element){
 
		// 从元素访问KEY
		string word = element.first;
		// Accessing VALUE from element.
		int count = element.second;
		cout << word << " = " << count << endl;
	});
 
	return 0;
}

الإخراج:

Room1 = 100
Room2 = 200
Room3 = 300

در مثال بالا، ما از الگوریتم STL std::for_each برای جستجو در نقشه استفاده کرده‌ایم. این الگوریتم در هر عنصر نقشه جستجو می‌کند و یک تابع بازگشتی را فراخوانی می‌کند.

مثال 3

دعونا یک مثال ساده از استفاده از چرخه while برای جستجو در نقشه را بررسی کنیم.

#include <iostream>
#include <map>
#include <string>
int main()
{
    using namespace std;
 
      map<int,string> mymap = {
                { 100, "Nikita"},
                { 200, "Deep" }};
                { 300, "Priya" },
                { 400, "Suman" },
                { 500, "Aman" }};
 
    map<int, string>::const_iterator it; // یک ایترویت اعلام می‌شود
    it = mymap.cbegin(); // و آن را به شروع مخزن اختصاص می‌دهد
    while (it != mymap.cend())
    {
       cout << it->first << " = " << it->second << "\n"; 
       // ارزش عنصر به کار رفته را چاپ می‌کند
       ++it; // و به عنصر بعدی حرکت می‌کند
    }
 
    cout << endl;
}

الإخراج:

100: Nikita
200: Deep
300: Priya
400: Suman
500: Aman

در مثال بالا، عملکرد cbegin() برای بازگرداندن یک ایترویت به اولین عنصر مخزن mymap استفاده شده است.

مثال 4

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

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main ()
{
  map<int,int> mymap = {
                { 10, 10 },
                { 20, 20 },
                { 30, 30 } };
          
                
  cout << "عنصر هو:" << endl;
 
    for (auto it = mymap.cbegin(); it != mymap.cend(); ++it)
    cout << it->first 
    << " + " 
    << it->second 
    << " = "
    <<it->first + it->second
    << '\n';
    auto ite = mymap.cbegin();
 
    cout << "العنصر الأول هو: ";
    cout << "{" << ite->first << ", ";
         << ite->second << "}\n";
  return 0;
  }

الإخراج:

العنصر هو:
10 + 10 = 20
20 + 20 = 40
30 + 30 = 60
العنصر الأول هو: {10, 10}

في المثال السابق، يتم استخدام وظيفة cbegin() لتحديد مرجع إلى العنصر الأول في محلول mymap.

map (المحلول) STL C++