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

تعليميات C++ الأساسية

تحكم في العملية C++

وظيفة C++

مصفوفات C++ و 字ائن

مصفوفات بيانات C++

فئة C++ و كائن

الـ“pointer” C++

الوراثة C++

تعليمية STL C++

دليل مرجع C++

استخدام طريقة C++ set emplace_hint() و مثال

STL Set (الجمع) C++

C ++ set emplace_hint()han shu yong yu tong guo shi yong ti shi zai yuan su wei zhi jia ru xin yuan su wei rong zhi ran jing zuo chu yan. yuan su shi zhi jian jian gou zao de (ji bu fu zai bing bu yidong).

tong guo gei tiao shi gei hanshu de can shu args zhao dian yuan su de gou zao huan zhou.

jin zai mi jian bu cun zai de shi hao cha ru.

yu fa

template<class.... can shu>
    iterator emplace_hint(const_iterator wei zhi, Args&&... can shu); 		//C++ 11 hou

can shu

can shu:chuan shi jie gao zao cha ru jie he zhong de yuan su de can shu.

wei zhi:ti shi cha ru xin yuan su de wei zhi.

fan hui zhi

ta jiang dao ru qia li fan hui dao xin cha ru de yuan su. ru guo yuan su yi jing cun zai, cha ru shi bai, bing jiang dao ru qia li fan hui dao cun zai de yuan su.

fu za

ru guo mei zhiding weizhi, rong zhi da xiao de duo shu wei duo shu.

ru guo gei chu weizhi, fa zhong du shi dian shu xing hua chong shu.

dao ru qia li xiao xing

me you bian hua.

shu ju zeng jiu

rong zhi yi gai

guan guan shi gong chuan guo chou chuan yi yuan su, zai rong zhe zhong qing xing luo dian bu shi an quan.

chuan shi an quan

ru guo fan xian, zhi xing rong zhe zhong wu wei gai gai.

shi li 1

rang women kan yi ge jian dan de shi li jian ru jie he zhong:

#include <iostream>
#include <set>
using namespace std;
int main(void) {
   set<int> m = {60, 20, 30, 40};
            
   m.emplace_hint(m.end(), 50);
   m.emplace_hint(m.begin(), 10);
   cout << "ji he bao huan zai xia xing yuansu" << endl;
   for (auto it = m.begin(); it != m.end(); ++it){
      cout << *it << endl;
   }   
   return 0;
}

الخروج:

ji he bao huan zai xia xing yuansu
10
20
30
40 
50
60

zai shangmian de shi li zhong, ta zhi shi jian yi ge ding wei de ding yi zhi jia ru jie he m zhong.

shi li 2

rang hainan kan yige jian dan shi li:

#include <set>  
#include <string>  
#include <iostream>  
  
using namespace std;  
  
template<typename M> void print(const M& m) {  
    cout << m.size() << " 	elements: " << endl;  
  
    for (const auto& p : m) {  
        cout << p << " ";  
    }  
  
    cout << endl;  
}  
  
int main()  
{  
    set<string> m1;  
  
    //mengchu yixie ceshi shuju; 
    m1.emplace("Ram");  
    m1.emplace("Rakesh");  
    m1.emplace("Sunil");  
  
    cout << "إعداد بداية البيانات: ";  
    print(m1);  
    cout << endl;  
  
    //emplace_hint 
    m1.emplace_hint(m1.end(), "Deep");  
  
    cout << "set modified, now contains ";  
    print(m1);  
    cout << endl;  
}

الخروج:

إعداد بداية البيانات: 3 عناصر: 
Rakesh  Ram  Sunil  
الإعداد قد تم تعديله الآن ويحتوي على 4 عناصر: 
Deep  Rakesh  Ram  Sunil

مثال 3

دعونا یک مثال ساده‌ای از اضافه کردن عناصر به مجموعه‌ای در موقعیت مشخص را ببینیم:

#include <iostream>
#include <set>
using namespace std;
int main ()
{
  set<char> myset;
  auto it = myset.end();
  it = myset.emplace_hint(it,'b');
  myset.emplace_hint(it,'a');
  myset.emplace_hint(myset.end(),'c');
  cout << "myset contains:";
  for (auto& x: myset){
    cout << " [" << x << ']';
    cout << '\n';
   }   
  return 0;
}

الخروج:

myset contains: [a] [b] [c]

مثال 4

دعونا یک مثال ساده از اضافه کردن عناصر را ببینیم:

#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
  typedef set<string> city;  
   string name;
   city fmly ;
   int n;
   cout<<"输入家庭成员人数 :\
   cin>>n;
   cout<<"输入每个成员的姓名: \n";
   for(int i =0; i<n; i++)
   {
       cin>> name;      // Get key
       fmly.emplace_hint(fmly.begin(),name);
       
   }
   
      cout<<"\n家庭成员总数为:"<< fmly.size();
      cout<<"\n家庭成员资料: \n";
      cout<<"\nName \n ________________________\n";
      city::iterator p;
      for(p = fmly.begin(); p!=fmly.end(); p++)
      {
          cout << (*p) << " \n ";
      }
    
   return 0;
}

الخروج:

إدخال عدد أفراد العائلة: 4
إدخال اسم كل عضو في العائلة: 
Deep
Sonu
Ajeet
Bob
عدد أفراد العائلة:4
معلومات العائلة: 
الاسم 
 ________________________
 Ajeet 
 Bob 
 Deep 
 Sonu

في المثال أعلاه، يتم إدراج العنصر فقط بناءً على اختيار المستخدم في بداية المجموعة.

STL Set (الجمع) C++