----部分摘自c++菜鳥教程----
map用法
map是c++中的乙個標準容器,她提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果。
map最基本的建構函式;
mapmapstring; mapmapint;
mapmapstring; map< char ,string>mapchar;
mapmapchar; mapmapint;
map新增資料;
mapmaplive;
maplive.insert(pair(102,"aclive"));
maplive.insert(map::value_type(321,"hai"));
maplive[112]="april";//map中最簡單最常用的插入新增!
map中元素的查詢:
find()函式返回乙個迭代器指向鍵值為key的元素,如果沒找到就返回指向map尾部的迭代器。
map::iterator l_it;;
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"如果刪除112;
map::iterator l_it;;
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"map中的swap不是乙個容器中的元素交換,而是兩個容器交換;
示例:#include #include using namespace std;
int main()
map的sort問題:
map中的元素是自動按key公升序排序,所以不能對map用sort函式:
示例:
#include #include using namespace std;
int main( )
呼叫時:sort(vec.begin(),vec.end(),comp),這樣就降序排序。
輸出vector的中的元素
vector vecclass;
int nsize = vecclass.size();
//列印vecclass,方法一:
for(int i=0;i需要注意的是:以方法一進行輸出時,陣列的下表必須保證是整數。
//列印vecclass,方法二:
for(int i=0;i//列印vecclass,方法三:輸出某一指定的數值時不方便
for(vector::iterator it = vecclass.begin();it!=vecclass.end();it++)
cout《二維陣列的使用:#include "stdafx.h"
#include #include #include using namespace std;
int main()
; vector v1;
v1.push_back(out[0]);
v1.push_back(out[1]);
v1.push_back(out[2]);
cout << v1[0][0] << endl;//1
cout << v1[0][1] << endl;//2
cout << v1[1][0] << endl;//3
cout << v1[1][1] << endl;//4
cout << v1[2][0] << endl;//5
cout << v1[2][1] << endl;//6
return 0;
}
函式模板
template//型別引數化
//或者
templatevoid myswap(t& a, t& b)
void myswap(int& a, int& b)
void test01()
int main()
a:10 b:20
a:20 b:10
c:10.12 d:20.34
c:20.34 d:10.12
類模板#include#includeusing namespace std;
templateclass person
void show()
public:
t1 m_id;
t2 m_age;
};int main()
派生類templateclass person
public:
t m_age;
};templateclass subperson : public person//此處 不能丟
;
類模板.h和.cpp分離//標頭檔案 person.h
#pragma once
#includeusing namespace std;
templateclass person
;//原始檔 person.cpp 在類模板檔案中一般將 .cpp 改為 .hpp
#include"person.h"
templateperson::person(t age) //此處 不能丟
templatevoid person::show() //此處 不能丟
//原始檔 demo.cpp
#include"person.h" //******
#include/ \
using namespace std; |
|int main() |
類模板中的static關鍵字templateclass person
;//類外初始化
templateint person::a = 0;
int main()
10 10 10
20 20 20
C 多執行緒基礎學習筆記(三)
一 detach 大坑 由監檢視可知,實參n和形參a的位址並不同,所以實際是值傳遞,並因此最好不要用引用,直接用值傳遞就行了。主線程的str m和str的位址卻相同,那麼當子執行緒和主線程分離時,就會出現問題。這裡講乙個改進的方法,把形參char str改成const string str,即把傳進...
C 學習(三) 基礎(三)
include using namespace std 1 引用的基本語法 引用 給一段記憶體空間起別名 語法 型別 別名 原名 void test1 注意 1 引用必須要初始化 void test2 2 建立乙個對陣列的引用 1 先定義出陣列的型別,在定義引用 陣列型別定義 typedef int...
三 學習筆記 c語言基礎 指標
1.定義指標變數 資料在記憶體中的位址也稱為指標,如果乙個變數儲存了乙份資料的指標,我們就稱它為指標變數。int a 1 int p a 通過指標變數p獲取資料 printf d p 星號 主要有三種用途 1 表示乘法,例如int a 1,b 2,c c a b 這是最容易理解的 2 表示定義乙個指...