免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
DLT698.45驅(qū)動

STL map

包含頭文件:#include <map>

定義:std::map<long,CItem*> m_mapItems;map.count(x)返回map中key為x的元素個數(shù),時間復(fù)雜度為O(logn)if(!map.count(x))  map[x]=1;

map.insert(pair<...,...>)

在map中插入,參數(shù)是pair<key.type,value.type>,返回插入地址的迭代器和是否插入成功的bool并成的pair,時間復(fù)雜度為O(log n)PS:insert在進行插入的時候是不允許有重復(fù)的鍵值的,如果新插入的鍵值與原有的鍵值重復(fù)則插入無效用法:名稱.insert(pair<key的類型,value的類型>);eg.mp.insert(make_pair(2,3));

map[]運算符

map重載了[]運算符,map[key]返回key到value的引用,時間復(fù)雜度O(log n)[]操作符是map最吸引人的地方。我們可以很方便地通過map[key]來得到key對應(yīng)的value,還可以對map[key]進行賦值操作,改變key對應(yīng)的value。若查找的key不存在,則執(zhí)行map[key]后,map會自動新建一個二元組(key,zero),并返回zero的引用。map<string,int>mp;for(int i=1;i<=n;i  ){    string s;    int num;    cin>>s>>num;    mp[s]=num;}for(int i=1;i<=m;i  ){    string s;    cin>>s;    cout<<mp[s]<<endl;}

std::vector<char> vec,轉(zhuǎn)成字符串指針

std::vector<char> vec;char* p = &vec[0];

字符串轉(zhuǎn)成std::vector<char>

char* p="123";std::vector<char> vec;vec.insert(p,p 3);
//內(nèi)存中16位整型,低字節(jié)在前高字節(jié)在后,證明如下:
short sh = 0x0102;//內(nèi)存中低字節(jié)在前char*p = (char*)(&sh);//p[0] = 0x02;//p[1] = 0x01;

//內(nèi)存中32位整型,低字節(jié)在前高字節(jié)在后,證明如下:
long lo = 0x01020304;//內(nèi)存中低字節(jié)在前
char* pLo = (char*)(&lo);BYTE lo1 = pLo[0];//0x04BYTE lo2 = pLo[1];//0x03BYTE lo3 = pLo[2];//0x02BYTE lo4 = pLo[3];//0x01
//16位整型數(shù)據(jù)轉(zhuǎn)成低字節(jié)在前,高字節(jié)在后的char數(shù)組。
char ch[3] = {0};
short sh = 0x0102;
void ExchangeOrder(short sh,char*pTarget)
{
  char*p = (char*)(&sh);
pTarget[0] = p[1];
pTarget[1] = p[0];

//*(pTarget ) = p[1];
//*(pTarget ) = p[0];
//*(pTarget) = 0;
//*(pTarget  ) = char(sh >> 8);
//*(pTarget ) = char(sh);
//*(pTarget) = 0;
}
char ch[5] = {0};
short sh = 0x01020304;
void ExchangeOrder(long lo,char*pTarget)
{
  char*p = (char*)(&lo);
pTarget[0] = p[4];
pTarget[1] = p[3];
  pTarget[2] = p[2];
  pTarget[3] = p[1];
pTarget[4] = 0;

//*(pTarget ) = p[3];
//*(pTarget ) = p[2];
//*(pTarget ) = p[1];
//*(pTarget ) = p[0];
//*(pTarget ) = 0;
//*(pTarget  ) = char(sh >> 24);
//*(pTarget ) = char(sh >> 16);
//*(pTarget ) = char(sh >> 8);
//*(pTarget ) = char(sh);
//*(pTarget ) = 0;
}

char ch[5] = {0x01,0x02,0x03,0x04,0x00};轉(zhuǎn)成0x01020304
CString s = "\x01\x02\x03\x04"
long l;
//l = 0x01020304
void toLong(const char* p,long& l)
{
  char ch[5] = {0};
ch[0] = *(p 3);
  ch[1] = *(p 2);
  ch[2] = *(p 1);
ch[3] = *(p);
  l = *(long*)ch;
}

//CString可以直接轉(zhuǎn)成const char*,不可以直接轉(zhuǎn)成char*必須用GetBuffer()和ReleaseBuffer()

//CString類型數(shù)據(jù)做為memcpy()函數(shù)的參數(shù)
CString s0 = "1234";
CString s1 ;
char* pch = s1.GetBuffer(3);//在s1的pchData中得到3個字節(jié),用來修改。
memcpy(pch,s0,3);//這里第一個參數(shù)不能直接使用s1必須用GetBuffer()轉(zhuǎn)換,第二個參數(shù)可以直接使用CString
int n = s1.GetLength();//返回s1沒有使用memcpy()函數(shù)之前的長度。
s1.ReleaseBuffer(3);//參數(shù)必須小于等GetBuffer()中的參數(shù)。

//字符串轉(zhuǎn)成十六進制32位整數(shù)
//CString類型做為sscanf()函數(shù)的參數(shù)
CString s0 = "01020304";
long lo;
sscanf(s0,"x",&lo); //lo = 0x01020304

//字符串轉(zhuǎn)成十進制16位整數(shù)
CString s = "1234";
short sh;
sscanf(s,"%d",&sh);//sh = 1234;

//字符串轉(zhuǎn)成十進制8位整數(shù)
CString s = "12";
char ch;
sscanf(s,"%d",&ch);//ch = 12;

//CString轉(zhuǎn)成char*
CString s = "01020304";
char ch[10] = {0};
sscanf(s,"%s",ch); //ch[10] = {0x30,0x31,0x30,0x32,0x30,0x33,0x30,0x34,0x00,0x00}

//CString轉(zhuǎn)成10進制整數(shù)
CString s = "12";
int n = atoi(s);//注意字符串的長度

//整型數(shù)轉(zhuǎn)成CString
int n = 12;
CString s ;
//sprintf(s,"%d",n);//CString 不能轉(zhuǎn)成char*,所以不能通過。
s.Format("d",n);

來源:https://www.icode9.com/content-4-658951.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CString類_自我救贖的空間
CString參數(shù)用于const void*的理解
CString const char*與char*之間的轉(zhuǎn)換關(guān)系
MFC-format 用法
CString轉(zhuǎn)換成char *字符串
Cstring 的賦值格式轉(zhuǎn)換等
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服