c++是乙個重要的工具,涉及到效能問題的都會使用到c++,遺憾的是自己對c++相關的東西不太了解,希望借助這波學習能弄通它。首先弄懂兩個符號的意思,&、*。
&
每乙個變數都有乙個記憶體位置,每乙個記憶體位置都定義了可使用連字型大小(&)運算子訪問的位址,它表示了在記憶體中的乙個位址。請看下面的例項,它將輸出定義的變數位址
#include
using
namespace
std;
int main()
*指標是乙個變數,其值為另乙個變數的位址,即,記憶體位置的直接位址。就像其他變數或常量一樣,您必須在使用指標儲存其他變數位址之前,對其進行宣告。
#include
using
namespace
std;
int main()
執行結果為
➜ code ./a.out
0x7ffee586f6ac
40
可以看到,p1是位址,*p1就是值了。我們再看看它複雜的使用方式。
#include
using
namespace
std;
struct info;
int main();
cout
<< p1->a << endl;
cout
<< p1->b << endl;
int *p2;
p2 = &var1;
cout
<< *p2 << endl;
*p2 = 3;
cout
<< *p2 << endl;
delete p2;
delete p1;
}
注意使用g++ -std=c++14 test.cpp進行編譯
#include
using
namespace
std;
struct info;
void disp(info *p1)
int main();
disp(p1);
delete p1;
}
以上**可以正常執行,同時也可以這樣
#include
using
namespace
std;
struct info;
void disp(info p1)
int main();
disp(*p1);
delete p1;
}
*p1就是乙個value,而p1是乙個指標。再看看下面的**
#include
using
namespace
std;
void disp(int *a)
int main()
列印了40
#include
using
namespace
std;
void disp(int* a)
int main()
列印了0x7ffeef2286cc
可以看到使用&,可以獲取到變數的位址,也就是乙個指標。
下面以map為例子
#include
#include
using
namespace
std;
void disp(std::map
<:string int> m)
std::cout
<< m.size() << std::endl;
}void del(std::map
<:string int> *m, std::string key)
std::cout
<< m->size() << std::endl;
}int main()
返回結果為
2
key: a
value: 1
key: b value: 2
3key: ab value: 4
key: ac value: 5
key: bc value: 523
22
那c++ std裡面有哪些集合類呢
集合類中還有很多方法,需要在實踐中去運用~慢慢來吧
C 集合類 使用
關聯性集合類即我們常說的鍵值對集合,允許我們通過key來訪問和維護集合。我們來看一下 net 為我們提供了哪些泛型的關聯性集合類 1 dictionary2 sorteddictionary3 sortedlist dictionary dictionary可能是最常用的關聯性集合了,它的訪問,新增...
C 集合介面與集合類
c 開發經常用到.net框架為我們提供的集合介面和集合類,接下來做乙個總結,如有差錯,希望各位大神指正。首先是集合介面,自己畫了一張圖 嘿嘿,有點醜 來說明集合介面的繼承關係。個人覺得,了解集合介面,首先要把握他們的繼承關係。如上圖,所有的集合介面和集合類都繼承 實現ienumerable介面。ie...
C 集合類使用範例
dictionary system.collections.dictionaryentry dic new system.collections.dictionaryentry key1 value1 arraylist system.collections.arraylist list new s...