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++ å ·åè¦æ±ï¼ éæºæ°å¼æ (RandomNumberEngine)
C++ å ·åè¦æ±ï¼ éæºæ°å¼æ (RandomNumberEngine)
éæºæ°å¼ææ¯å½æ°å¯¹è±¡ï¼è¿åæ ç¬¦å·æ´æ°å¼ï¼å®ä½¿å¾å¯è½ç»æèå´ä¸çæ¯ä¸ªå¼æ¥æï¼çæ³çï¼ç¸çæ¦çã
ä»»ä½éæºæ°å¼æäº¦ä¸ºååéæºä½çæå¨ (UniformRandomBitGenerator) ï¼ä»èå¯è½æå ¥ä»»ä½éæºæ°åå¸ï¼ä»¥è·å¾éæºæ°ï¼æ£å¼èè¨æ¯éæºåéï¼ã
è¦æ±
满足ååéæºä½çæå¨ (UniformRandomBitGenerator) çç±»å E ä¼å¦å¤æ»¡è¶³éæºæ°å¼æ (éæºæ°å¼æ (RandomNumberEngine) ) ï¼è¥ç»å®
-
Tï¼E::result_typeææåçç±»å -
sï¼Tç±»åå¼ -
eï¼Eç±»åçé const å¼ -
vï¼Eç±»åå·¦å¼ -
xä¸yï¼Eç±»åçå¯è½ä¸º const çå¼ -
qï¼ææ»¡è¶³ç§ååºå (SeedSequence) çç±»åçå·¦å¼ -
zï¼unsigned long longç±»åå¼ -
osï¼è¾åºæµ -
isï¼è¾å ¥æµ
èä¸å表达å¼åæ³å¹¶æ¥æå ¶æå®çææï¼
| è¡¨è¾¾å¼ | è¿åç±»å | è¦æ± |
|---|---|---|
| E() | åå»ºå¼æï¼å
¶ç¶æä¸ææå
¶ä»é»è®¤æé ç E ç±»å弿ç¸åã
| |
| E(x) | åå»ºå¼æï¼å
¶ç¶æä¸ x çç¸åã
| |
| E(s) | åå»ºå¼æï¼å
¶åå§ç¶æä¸º s æç¡®å®ã
| |
| E(q) | åå»ºå¼æï¼å
¶åå§ç¶æä»¥å次è°ç¨ q.generate ç¡®å®ã
| |
| e.seed() | void
|
设置 e == E() ã |
| e.seed(s) | void
|
设置 e == E(s) ã |
| e.seed(q) | void
|
设置 e == E(q) ã |
| e() | T
|
è¿åéåºé´ [E::min(), E::max()] ä¸çå¼ãæ¥æåæå¸¸æ°å¤æåº¦ã |
| e.discard(z) | void
|
令 e çç¶æåè¿ï¼å¦åéè¿ z 次è¿ç»è°ç¨ e() ã
|
| x == y | bool
|
è¥ x ä¸ y å¨ç¸åç¶æï¼æ»¡è¶³å°æ¥å¯¹ x() å y() çéå¤è°ç¨å°äº§ççåçæ°åï¼å为 true ãå¦å为 false ã
|
| x != y | bool
|
!(x == y) |
| os << x | decltype(os)& | å° x å½åç¶æçææ¬è¡¨ç¤ºåå
¥ os ãè¾åºä¸ï¼ç¸é»çæ°ä»¥ä¸æå¤ä¸ªç©ºæ ¼å符åéãè¥ os ç fmtflags æªè®¾ä¸º ios_base::dec|ios_base::left ï¼åè¡ä¸ºå¯è½æªå®ä¹ã
|
| is >> v | decltype(is)& | ä» is 读å v å½åç¶æçææ¬è¡¨ç¤ºï¼æ»¡è¶³è¥å
åéè¿ os << x åå
¥è¯¥ç¶æï¼å x == v ãè¥ is ç fmtflags æªè®¾ä¸º ios_base::dec ï¼åè¡ä¸ºå¯è½æªå®ä¹ã
|
æ ååº
ä¸åæ ååºè®¾æ½æ»¡è¶³éæºæ°å¼æ (éæºæ°å¼æ (RandomNumberEngine) ) ï¼
| (C++11) |
å®ç°çº¿æ§åä½ç®æ³ (类模æ¿) |
| (C++11) |
å®ç°æ¢
æ£®ç¼ ç»å¨ç®æ³ (类模æ¿) |
| (C++11) |
å®ç°å¸¦è¿ä½åï¼ä¸ç§å»¶è¿ææ³¢é£å¥ï¼ç®æ³ (类模æ¿) |
| (C++11) |
èå¼éæºæ°å¼æçæäºè¾åº (类模æ¿) |
| (C++11) |
å°ä¸ä¸ªéæºæ°å¼æçè¾åºæå
为æå®ä½æ°çå (类模æ¿) |
| (C++11) |
以ä¸å顺åºåéä¸ä¸ªéæºæ°å¼æçè¾åº (类模æ¿) |
ä¸åæ ååºè®¾æ½æ»¡è¶³ååéæºä½çæå¨ (UniformRandomBitGenerator) ä½ä¸æ»¡è¶³éæºæ°å¼æ (éæºæ°å¼æ (RandomNumberEngine) ) ï¼
| (C++11) |
使ç¨ç¡¬ä»¶çµæºçéç¡®å®éæºæ°çæå¨ (ç±») |