C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- C++ å ·åè¦æ±ï¼ 彿°å¯¹è±¡ (FunctionObject)
- C++ å ·åè¦æ±ï¼ äºå è°è¯ (BinaryPredicate)
- C++ å ·åè¦æ±ï¼ å¯é»è®¤æé (DefaultConstructible)
- C++ å ·åè¦æ±ï¼ å¯å¤å¶èµå¼ (CopyAssignable)
- C++ å ·åè¦æ±ï¼ å¯å¤å¶æé (CopyConstructible)
- C++ å ·åè¦æ±ï¼ å¯ç§»å¨èµå¼ (MoveAssignable) (C++11 èµ·)
- C++ å ·åè¦æ±ï¼ å¯ç§»å¨æé (MoveConstructible) (C++11 èµ·)
- C++ å ·åè¦æ±ï¼ 坿æ (Destructible)
- C++ å ·åè¦æ±ï¼ å¯å¹³å¡å¤å¶ (TriviallyCopyable)
- C++ å ·åè¦æ±ï¼ å¯ç¸çæ¯è¾ (EqualityComparable)
- C++ å ·åè¦æ±ï¼ å¯å°äºæ¯è¾ (LessThanComparable)
- C++ å ·åè¦æ±ï¼ æ¯è¾ (Compare)
- C++ å ·åè¦æ±ï¼ åé¢ç±»å (LiteralType)
- C++ å ·åè¦æ±ï¼ ç®æ§æ°æ®ç±»å (PODType)
- C++ å ·åè¦æ±ï¼ å¹³å¡ç±»å (TrivialType)
- C++ å ·åè¦æ±ï¼ æ åå¸å±ç±»å (StandardLayoutType)
- C++ å ·åè¦æ±ï¼ éçååè¿ä»£å¨ (LegacyForwardIterator)
- C++ å ·åè¦æ±ï¼ å¯äº¤æ¢ (Swappable)
- C++ å ·åè¦æ±ï¼ å¼å¯äº¤æ¢ (ValueSwappable)
- C++ å ·åè¦æ±ï¼ å¯ç©ºæé (NullablePointer) (C++11 èµ·)
- C++ å ·åè¦æ±ï¼ æ£å (Hash)
- C++ å ·åè¦æ±ï¼ åé å¨ (Allocator)
- C++ å ·åè¦æ±ï¼ å¯è°ç¨ (Callable)
- C++ å ·åè¦æ±ï¼ è°è¯ (Predicate)
- C++ å ·åè¦æ±ï¼ å®¹å¨ (Container)
- C++ å ·åè¦æ±ï¼ åºåå®¹å¨ (SequenceContainer)
- C++ å ·åè¦æ±ï¼ è¿ç»å®¹å¨ (ContiguousContainer)
- C++ å ·åè¦æ±ï¼ å¯éå®¹å¨ (ReversibleContainer)
- C++ å ·åè¦æ±ï¼ å ³èå®¹å¨ (AssociativeContainer)
- C++ å ·åè¦æ±ï¼ å ·åé å¨å®¹å¨ (AllocatorAwareContainer)
- C++ å ·åè¦æ±ï¼ æ åºå ³èå®¹å¨ (UnorderedAssociativeContainer)
- C++ å ·åè¦æ±ï¼ å¯é»è®¤æå ¥ (DefaultInsertable)
- C++ å ·åè¦æ±ï¼ å¯å¤å¶æå ¥ (CopyInsertable)
- C++ å ·åè¦æ±ï¼ å¯ç§»å¨æå ¥ (MoveInsertable) (C++11 èµ·)
- C++ å ·åè¦æ±ï¼ å¯å°±ä½æé (EmplaceConstructible) (C++11 èµ·)
- C++ å ·åè¦æ±ï¼ 坿¦é¤ (Erasable)
- C++ å ·åè¦æ±ï¼ éçè¿ä»£å¨ (LegacyIterator)
- C++ å ·åè¦æ±ï¼ éçè¾åºè¿ä»£å¨ (LegacyOutputIterator)
- C++ å ·åè¦æ±ï¼ éçè¾å ¥è¿ä»£å¨ (LegacyInputIterator)
- C++ å ·åè¦æ±ï¼ éçååè¿ä»£å¨ (LegacyBidirectionalIterator)
- C++ å ·åè¦æ±ï¼ éçéæºè®¿é®è¿ä»£å¨ (LegacyRandomAccessIterator)
- C++ å ·åè¦æ±ï¼ éçè¿ç»è¿ä»£å¨ (LegacyContiguousIterator)
- C++ å ·åè¦æ±ï¼ 常é表达å¼è¿ä»£å¨ (ConstexprIterator)
- C++ å ·åè¦æ±ï¼ ææ ¼å¼è¾å ¥å½æ° (FormattedInputFunction)
- C++ å ·åè¦æ±ï¼ æ æ ¼å¼è¾å ¥å½æ° (UnformattedInputFunction)
- C++ å ·åè¦æ±ï¼ ææ ¼å¼è¾åºå½æ° (FormattedOutputFunction)
- C++ å ·åè¦æ±ï¼ æ æ ¼å¼è¾åºå½æ° (UnformattedOutputFunction)
- C++ å ·åè¦æ±ï¼ ç§ååºå (SeedSequence)
- C++ å ·åè¦æ±ï¼ éæºæ°å¼æ (RandomNumberEngine)
- C++ å ·åè¦æ±ï¼ éæºæ°åå¸ (RandomNumberDistribution)
- C++ å ·åè¦æ±ï¼ ååéæºä½çæå¨ (UniformRandomBitGenerator)
- C++ å ·åè¦æ±ï¼ éæºæ°å¼æéé å¨ (RandomNumberEngineAdaptor)
- C++ å ·åè¦æ±ï¼ åºæ¬å¯éå® (BasicLockable)
- C++ å ·åè¦æ±ï¼ å¯éå® (Lockable)
- C++ å ·åè¦æ±ï¼ å¯å®æ¶éå® (TimedLockable)
- C++ å ·åè¦æ±ï¼ äºæ¥ä½ (Mutex)
- C++ å ·åè¦æ±ï¼ 宿¶äºæ¥ä½ (TimedMutex)
- C++ å ·åè¦æ±ï¼ å ±äº«äºæ¥ä½ (SharedMutex)
- C++ å ·åè¦æ±ï¼ å ±äº«å®æ¶äºæ¥ä½ (SharedTimedMutex)
- C++ å ·åè¦æ±ï¼ å符ç¹å¾ (CharTraits)
- C++ å ·åè¦æ±ï¼ æ£å表达å¼ç¹å¾ (RegexTraits)
- C++ å ·åè¦æ±ï¼ 使©ç ç±»å (BitmaskType)
- C++ å ·åè¦æ±ï¼ æ°å¼ç±»å (NumericType)
- C++ å ·åè¦æ±ï¼ ä¸å ç±»åç¹å¾ (UnaryTypeTrait)
- C++ å ·åè¦æ±ï¼ äºå ç±»åç¹å¾ (BinaryTypeTrait)
- C++ å ·åè¦æ±ï¼ 忢ç¹å¾ (TransformationTrait)
- C++ å ·åè¦æ±ï¼ æ¶é (Clock)
- C++ å ·åè¦æ±ï¼ 平塿¶é (TrivialClock)
- 注é
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >å ·åè¦æ± > C++ å ·åè¦æ±ï¼ éæºæ°åå¸ (RandomNumberDistribution)
C++ å ·åè¦æ±ï¼ éæºæ°åå¸ (RandomNumberDistribution)
éæºæ°åå¸ (RandomNumberDistribution) æ¯è¿åæä»æ¦çå¯åº¦å½æ° p(x) æç¦»æ£æ¦çåå¸ P(x
i) çéæºæ°ç彿°å¯¹è±¡ã
è¦æ±
ç±»å D æ»¡è¶³éæºæ°åå¸ (éæºæ°åå¸ (RandomNumberDistribution) ) ï¼è¥
-
D满足å¯å¤å¶æé (CopyConstructible) -
D满足å¯å¤å¶èµå¼ (CopyAssignable)
ç»å®
-
Tï¼ D::result_type ææåçç±»å -
Pï¼ D::param_type ææåçç±»åï¼å®
- 满足å¯å¤å¶æé (CopyConstructible)
- 满足å¯å¤å¶èµå¼ (CopyAssignable)
- 满足å¯ç¸çæ¯è¾ (EqualityComparable)
- æ¥æä¸ä¸ªæé 彿°ï¼æ¥æ¶çåæ°ä¸
Dçæ¥æ¶ä¸åå¸åæ°ç¸å¯¹åºçåæ°çæé 彿°çåã - æ¥ææå彿°ï¼å
¶åç§°ãç±»åãè¯ä¹ä¸
Dçæ¯ä¸ªè¿ååå¸åæ°çæå彿°çåã - 声ææå typedef using distribution_type = D;
-
dï¼Dç±»åçå¼ -
xä¸yï¼Dç±»åçï¼å¯è½ const çï¼å¼ã -
pï¼Pç±»åçï¼å¯è½ const çï¼å¼ -
gãg1ãg2ï¼æ»¡è¶³ååéæºä½çæå¨ (UniformRandomBitGenerator) çç±»åå·¦å¼ -
osï¼ std::basic_ostream ç¹åçå·¦å¼ -
isï¼ std::basic_istream ç¹åçå·¦å¼
ä¸å表达å¼å¿ 须忳䏿¥æå ¶æå®çæåº
| è¡¨è¾¾å¼ | ç±»å | 注æ | å¤ï»¿æï»¿åº¦ |
|---|---|---|---|
D::result_type |
T |
ç®æ¯ç±»å | ç¼è¯æ¶ |
D::param_type |
P |
ç¼è¯æ¶ | |
D() |
å建ä¸å
¶ä»é»è®¤æé ç D ä¸å¯åºå«çåå¸ |
å¸¸æ° | |
D(p) |
å建ä¸ä»ç¨ä»¥æé p çå¼ç´æ¥æé ç D ä¸å¯åºå«çåå¸ |
å p çæé
| |
d.reset() |
void |
éç½®åå¸çåå§ç¶æã d ä¸ç䏿¬¡å° operator() çè°ç¨å°ä¸ä¾èµä»»ä½å¼æçå
äº reset() ç产ççå¼ã |
å¸¸æ° |
x.param() |
P |
è¿å p ï¼æ»¡è¶³ D(p).param() == p |
ä¸å£äº D(p)
|
d.param(p) |
void |
åç½®æ¡ä»¶ï¼ d.param() == p | ä¸å£äº D(p)
|
d(g) |
T |
以åä¸ g è°ç¨ä¹çç¸ç»§è°ç¨ï¼æè¿åçæ°åéæºåå¸ï¼æä» d.param() æåæ°åçåå¸ |
åæå¸¸æ°æ¬¡ g çè°ç¨
|
d(g,p) |
T |
以åä¸ g è°ç¨ä¹çç¸ç»§è°ç¨ï¼æè¿åçæ°åéæºåå¸ï¼æä» p æåæ°åçåå¸ |
åæå¸¸æ°æ¬¡ g çè°ç¨
|
x.min() |
T |
x ç operator() æ½å¨è¿åå¼ä¸çæå¤§ä¸çï¼ç± x çåæ°çå½åå¼ç¡®å® |
å¸¸æ° |
x.max() |
T |
x ç operator() æ½å¨è¿åå¼ä¸çæå°ä¸çï¼ç± x çåæ°çå½åå¼ç¡®å® |
å¸¸æ° |
x == y |
bool |
建ç«çä»·å
³ç³»ãè¥ x.param() == y.param() ï¼ä¸åªè¦ g1 == g2 ï¼å°æ¥éå¤è°ç¨ x(g1) ä¸ y(g2) æçæçæ éæ°åå°±ç¸çï¼åè¿å true ã |
å¸¸æ° |
x != y |
bool |
!(x == y) |
å¸¸æ° |
os << x |
å° os ç±»åçå¼ç¨ |
ååå¸åæ°åå
é¨ç¶æçææ¬è¡¨ç¤ºå° os ã䏿´æ¹ os çæ ¼å¼åæ å¿åå¡«å
å符ã |
|
is >> d |
å° is ç±»åçå¼ç¨ |
ä»è¯»åèª is çæ°æ®è¿ååå¸åæ°åå
é¨ç¶æã䏿´æ¹ is çæ ¼å¼åæ å¿ãæ°æ®å¿
é¡»ç¨å¸¦ç¸åæ¬å°ç¯å¢ã CharT å Traits æµæ¨¡æ¿å½¢åçæµåå
¥ï¼å¦åè¡ä¸ºæªå®ä¹ãè¥éå°åçè¾å
¥ï¼åè°ç¨ is.setstate(std::ios::failbit) ï¼å®å¯ä»¥æåº std::ios_base::failure ã该æ
åµä¸ä¸æ´æ¹ d ã |
注æ
åå¸å¯¹è±¡çåæ°å¯ç¨ d.param(p) æ°¸ä¹ æ´æ¹ï¼æç¨ d(g,p) åªå¨å次 operator() è°ç¨æé´æ´æ¹ã
è°ç¨åå¸ç const æå彿°å os << d ä¸å½±åéå¤ d(g) æäº§ççæ°åã
æ ååº
ä¸åæ ååºç»ä»¶æ»¡è¶³éæºæ°åå¸ (RandomNumberDistribution)
| (C++11) |
产çå¨ä¸ä¸ªèå´ä¸åååå¸çæ´æ°å¼ (类模æ¿) |
| (C++11) |
产çå¨ä¸ä¸ªèå´ä¸åååå¸ç宿°å¼ (类模æ¿) |
| (C++11) |
产ç伯åªå©åå¸ä¸ç bool å¼ã (ç±») |
| (C++11) |
产çäºé¡¹åå¸ä¸çæ´æ°å¼ã (类模æ¿) |
| 产çè´äºé¡¹åå¸ä¸çæ´æ°å¼ã (类模æ¿) | |
| (C++11) |
产çå ä½åå¸ä¸çæ´æ°å¼ã (类模æ¿) |
| (C++11) |
äº§çæ³æ¾åå¸ä¸çæ´æ°å¼ã (类模æ¿) |
| (C++11) |
äº§çææ°åå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
产ç Î åå¸ä¸ç宿°å¼ (类模æ¿) |
| (C++11) |
产çå¨å¸å°åå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
产çæå¼åå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
äº§çæ åæ£æï¼é«æ¯ï¼åå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
产çå¯¹æ°æ£æåå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
产ç Ï2 åå¸ä¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
äº§çæ¯è¥¿åå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
产çè´¹èå° F åå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
产çå¦ç t åå¸ä¸ç宿°å¼ã (类模æ¿) |
| (C++11) |
产ç离æ£åå¸ä¸çéæºæ´æ°ã (类模æ¿) |
| 产çåå¸å¨å¸¸ååºé´ä¸ç宿°å¼ã (类模æ¿) | |
| 产çåå¸å¨å®ä¹çååºé´ä¸ç宿°å¼ã (类模æ¿) |