คำถามติดแท็ก map

พจนานุกรมแมปคีย์กับค่าช่วยให้สามารถดึงค่าจากคีย์ได้อย่างมีประสิทธิภาพ ใช้แท็ก [map-function] เกี่ยวกับฟังก์ชันการทำแผนที่ผ่านข้อมูลโปรด; และสำหรับภูมิศาสตร์ [แผนที่]

13
remove_if เทียบเท่าสำหรับ std :: map
ฉันพยายามลบองค์ประกอบต่างๆออกจากแผนที่ตามเงื่อนไขเฉพาะ ฉันจะทำได้อย่างไรโดยใช้อัลกอริทึม STL เริ่มแรกฉันคิดว่าจะใช้ remove_ifแต่เป็นไปไม่ได้เนื่องจาก remove_if ใช้ไม่ได้กับคอนเทนเนอร์ที่เชื่อมโยง มีอัลกอริทึมที่เทียบเท่า "remove_if" ที่ใช้ได้กับแผนที่หรือไม่ ในฐานะตัวเลือกง่ายๆฉันคิดว่าจะวนลูปผ่านแผนที่และลบ แต่กำลังวนรอบแผนที่และลบตัวเลือกที่ปลอดภัยหรือไม่ (เนื่องจากตัวทำซ้ำไม่ถูกต้องหลังจากลบ) ฉันใช้ตัวอย่างต่อไปนี้: bool predicate(const std::pair<int,std::string>& x) { return x.first > 2; } int main(void) { std::map<int, std::string> aMap; aMap[2] = "two"; aMap[3] = "three"; aMap[4] = "four"; aMap[5] = "five"; aMap[6] = "six"; // does not work, an …
118 c++  stl  map 

6
map เทียบกับ hash_map ใน C ++
ฉันมีคำถามเกี่ยวกับhash_mapและmapใน C ++ ฉันเข้าใจว่าmapอยู่ใน STL แต่hash_mapไม่ใช่มาตรฐาน อะไรคือความแตกต่างระหว่างทั้งสอง?
117 c++  map  hashmap 

10
วิธีการเริ่มต้นแผนที่ const คงที่ส่วนตัวใน C ++?
ฉันต้องการเพียงแค่พจนานุกรมหรืออาเรย์=>stringint มีประเภทแผนที่ C ++ สำหรับกรณีนี้ แต่ฉันต้องการอินสแตนซ์สำหรับแผนที่เดียวเท่านั้น (-> คงที่) และแผนที่นี้ไม่สามารถเปลี่ยนแปลงได้ (-> const); ฉันพบวิธีนี้แล้วกับไลบรารีที่เพิ่มขึ้น std::map<int, char> example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); มีวิธีอื่นที่ไม่มี lib นี้หรือไม่? ฉันได้ลองสิ่งนี้แล้ว แต่มักจะมีปัญหาบางอย่างเกี่ยวกับการเริ่มต้นแผนที่ class myClass{ private: static map<int,int> create_map() { map<int,int> m; m[1] = 2; m[3] = 4; m[5] = 6; return m; } static map<int,int> …

3
สำเนาตื้นของแผนที่ใน Java
ตามที่ฉันเข้าใจมีสองวิธี (อาจเป็นวิธีอื่นเช่นกัน) ในการสร้างสำเนาตื้นของMapJava: Map<String, Object> data = new HashMap<String, Object>(); Map<String, Object> shallowCopy; // first way shallowCopy = new HashMap<String, Object>(data); // second way shallowCopy = (Map<String, Object>) ((HashMap<String, Object>) data).clone(); วิธีหนึ่งเป็นที่ต้องการมากกว่าอีกวิธีหนึ่งและถ้าเป็นเช่นนั้นทำไม? สิ่งหนึ่งที่ควรกล่าวถึงคือวิธีที่สองให้คำเตือน "Unchecked Cast" ดังนั้นคุณต้องเพิ่ม@SuppressWarnings("unchecked")เพื่อหลีกเลี่ยงซึ่งเป็นเรื่องที่น่ารำคาญเล็กน้อย (ดูด้านล่าง) @SuppressWarnings("unchecked") public Map<String, Object> getDataAsMap() { // return a shallow copy of the …
107 java  map  clone  shallow-copy 

4
ข้อผิดพลาดรันไทม์: การกำหนดรายการใน nil map
ฉันพยายามสร้างแผนที่จากนั้นแปลงเป็นไฟล์ yaml ดังนี้: uid : kasi: cn: Chaithra street: fkmp nandan: cn: Chaithra street: fkmp remya: cn: Chaithra street: fkmp ฉันคิดว่าฉันพลาดบางอย่างที่สำคัญในขณะที่สร้างแผนที่ รหัสของฉันอยู่ด้านล่าง package main import ( "fmt" "gopkg.in/yaml.v2" ) type T struct { cn string street string } func main() { names := []string{"kasi", "remya", "nandan"} m := make(map[string]map[string]T, len(names)) …
105 map  go  yaml 

3
บางส่วนของ JSON unmarshal ลงในแผนที่ใน Go
เซิร์ฟเวอร์ websocket ของฉันจะรับและข้อมูล JSON ที่ไม่เป็นอันตราย ข้อมูลนี้จะรวมอยู่ในวัตถุที่มีคู่คีย์ / ค่าเสมอ คีย์สตริงจะทำหน้าที่เป็นตัวระบุค่าโดยบอกเซิร์ฟเวอร์ Go ว่าเป็นค่าประเภทใด เมื่อทราบว่าประเภทของค่าใดฉันจึงสามารถดำเนินการต่อ JSON ค่า unmarshal ลงในประเภทของโครงสร้างที่ถูกต้อง json-object แต่ละตัวอาจมีคู่คีย์ / ค่าหลายคู่ ตัวอย่าง JSON: { "sendMsg":{"user":"ANisus","msg":"Trying to send a message"}, "say":"Hello" } มีวิธีง่ายๆในการใช้"encoding/json"แพ็คเกจนี้หรือไม่? package main import ( "encoding/json" "fmt" ) // the struct for the value of a "sendMsg"-command type sendMsg struct …
105 json  map  go 

2
boost :: flat_map และประสิทธิภาพเมื่อเทียบกับแผนที่และ unordered_map
เป็นความรู้ทั่วไปในการเขียนโปรแกรมว่าตำแหน่งหน่วยความจำช่วยเพิ่มประสิทธิภาพได้มากเนื่องจากแคชฮิต เมื่อเร็ว ๆ นี้ฉันได้ค้นพบเกี่ยวกับboost::flat_mapการใช้งานแผนที่แบบเวกเตอร์ ดูเหมือนจะไม่ได้รับความนิยมเท่าของคุณทั่วไปmap/ unordered_mapดังนั้นฉันจึงไม่สามารถหาการเปรียบเทียบประสิทธิภาพใด ๆ ได้ เปรียบเทียบอย่างไรและอะไรคือกรณีการใช้งานที่ดีที่สุดสำหรับมัน? ขอบคุณ!
103 c++  boost  map 

25
การเพิ่มประสิทธิภาพ / ทางเลือก Java HashMap
ฉันต้องการสร้าง HashMap ขนาดใหญ่ แต่put()ประสิทธิภาพไม่ดีพอ ความคิดใด ๆ ? ยินดีรับคำแนะนำโครงสร้างข้อมูลอื่น ๆ แต่ฉันต้องการคุณสมบัติการค้นหาของ Java Map: map.get(key) ในกรณีของฉันฉันต้องการสร้างแผนที่ที่มี 26 ล้านรายการ การใช้ Java HashMap มาตรฐานอัตราการใส่จะช้าลงเหลือทนหลังจากการแทรก 2-3 ล้านครั้ง มีใครรู้บ้างว่าการใช้การแจกแจงรหัสแฮชที่แตกต่างกันสำหรับคีย์สามารถช่วยได้หรือไม่? วิธีการแฮชโค้ดของฉัน: byte[] a = new byte[2]; byte[] b = new byte[3]; ... public int hashCode() { int hash = 503; hash = hash * 5381 + (a[0] …

4
การเข้าถึงองค์ประกอบแผนที่ C ++ const
ฉันพยายามใช้ตัวดำเนินการ [] เข้าถึงองค์ประกอบในแมป const C ++ แต่วิธีนี้ล้มเหลว ฉันยังพยายามใช้ "at ()" เพื่อทำสิ่งเดียวกัน มันได้ผลในครั้งนี้ อย่างไรก็ตามฉันไม่พบข้อมูลอ้างอิงใด ๆ เกี่ยวกับการใช้ "at ()" เพื่อเข้าถึงองค์ประกอบในแผนที่ const C ++ "at ()" เป็นฟังก์ชันที่เพิ่มใหม่ในแผนที่ C ++ หรือไม่ ฉันจะหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่ไหน ขอบคุณมาก! ตัวอย่างอาจเป็นดังต่อไปนี้: #include <iostream> #include <map> using namespace std; int main() { map<int, char> A; A[1] = 'b'; A[3] = 'c'; const …
102 c++  stl  map  const 


7
Java มี HashMap พร้อมการค้นหาแบบย้อนกลับหรือไม่
ฉันมีข้อมูลที่จัดระเบียบในรูปแบบ "คีย์ - คีย์" แทนที่จะเป็น "คีย์ - ค่า" มันเหมือน HashMap แต่ฉันจะต้องค้นหา O (1) ทั้งสองทิศทาง มีชื่อโครงสร้างข้อมูลประเภทนี้หรือไม่และสิ่งนี้รวมอยู่ในไลบรารีมาตรฐานของ Java หรือไม่ (หรืออาจจะเป็น Apache Commons?) ฉันสามารถเขียนคลาสของตัวเองที่โดยทั่วไปใช้แผนที่มิเรอร์สองแผนที่ แต่ฉันไม่อยากสร้างวงล้อใหม่ (ถ้ามีอยู่แล้ว แต่ฉันไม่ได้ค้นหาคำที่ถูกต้อง)

12
กำลังมองหาอัลกอริทึมการสร้างแผนที่โลกที่ดี [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังทำงานกับเกมที่มีลักษณะคล้ายอารยธรรมและฉันกำลังมองหาอัลกอริทึมที่ดีในการสร้างแผนที่โลกแบบ Earth ฉันได้ทดลองกับทางเลือกสองสามทาง แต่ยังไม่ได้ผู้ชนะที่แท้จริง ทางเลือกหนึ่งคือสร้างแผนที่ความสูงโดยใช้เสียง Perlinและเติมน้ำในระดับเพื่อให้ประมาณ 30% ของโลกเป็นที่ดิน ในขณะที่เสียง Perlin (หรือเทคนิคที่ใช้เศษส่วนที่คล้ายกัน) มักใช้สำหรับภูมิประเทศและมีความสมจริงพอสมควร แต่ก็ไม่ได้มีวิธีการควบคุมจำนวนขนาดและตำแหน่งของทวีปที่เกิดขึ้นมากนักซึ่งฉันต้องการ มีจากมุมมองการเล่นเกม ตัวเลือกที่สองคือการเริ่มต้นด้วยเมล็ดกระเบื้องเดียวที่วางตำแหน่งแบบสุ่ม (ฉันกำลังทำงานบนตารางกระเบื้อง) กำหนดขนาดที่ต้องการสำหรับทวีปและแต่ละรอบเพิ่มกระเบื้องที่อยู่ในแนวนอนหรือแนวตั้งที่อยู่ติดกับทวีปที่มีอยู่จนกระทั่ง คุณได้ถึงขนาดที่ต้องการแล้ว ทำซ้ำสำหรับทวีปอื่น ๆ เทคนิคนี้เป็นส่วนหนึ่งของอัลกอริทึมที่ใช้ในอารยธรรม 4 ปัญหาคือหลังจากวางสองสามทวีปแรกแล้วคุณสามารถเลือกตำแหน่งเริ่มต้นที่ล้อมรอบด้วยทวีปอื่น ๆ ได้ดังนั้นจึงไม่เหมาะกับทวีปใหม่ นอกจากนี้ยังมีแนวโน้มที่จะวางไข่ทวีปใกล้กันเกินไปส่งผลให้บางสิ่งดูเหมือนแม่น้ำมากกว่าทวีป ไม่มีใครรู้อัลกอริทึมที่ดีในการสร้างทวีปที่เหมือนจริงบนแผนที่แบบกริดในขณะที่ควบคุมจำนวนและขนาดสัมพัทธ์
98 algorithm  map  terrain 

7
การตรวจสอบเนื้อหาคอนเทนเนอร์มาตรฐาน (std :: map) ด้วย gdb
สมมติว่ามีสิ่งนี้: #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } ฉันต้องการตรวจสอบเนื้อหาของแผนที่ที่รันโปรแกรมจาก gdb หากฉันลองใช้ตัวดำเนินการตัวห้อยฉันจะได้รับ: (gdb) p m[1] Attempt to take address of value not located in memory. การใช้วิธีค้นหาไม่ได้ผลลัพธ์ที่ดีกว่า: (gdb) p m.find(1) Cannot evaluate function -- may be inlined มีวิธีที่จะทำให้สำเร็จหรือไม่?
93 c++  stl  map  gdb 

6
กำลังใช้ java Map.containsKey () ซ้ำซ้อนเมื่อใช้ map.get ()
ฉันสงสัยมาระยะหนึ่งแล้วว่ามันเป็นไปได้หรือไม่ตามแนวทางปฏิบัติที่ดีที่สุดที่จะละเว้นจากการใช้containsKey()วิธีการjava.util.Mapและทำการตรวจสอบค่าว่างกับผลลัพธ์จากget(). เหตุผลของฉันที่ดูเหมือนว่าจะทำซ้ำซ้อนการค้นหาของมูลค่าสองครั้ง - ครั้งแรกสำหรับและจากนั้นอีกครั้งสำหรับcontainsKey()get() ในทางกลับกันอาจเป็นไปได้ว่าการใช้Mapแคชมาตรฐานส่วนใหญ่ในการค้นหาครั้งสุดท้ายหรือคอมไพลเลอร์สามารถกำจัดความซ้ำซ้อนได้และเพื่อความสามารถในการอ่านโค้ดจึงควรรักษาcontainsKey()ส่วนนั้นไว้ ฉันจะขอบคุณมากสำหรับความคิดเห็นของคุณ

8
แปลงรายการทูเพิลเป็นแผนที่ (และจัดการกับคีย์ที่ซ้ำกัน?)
ฉันคิดเกี่ยวกับวิธีที่ดีในการแปลงรายการของ tuple กับคีย์ซ้ำลงในแผนที่[("a","b"),("c","d"),("a","f")] ("a" -> ["b", "f"], "c" -> ["d"])โดยปกติ (ใน python) ฉันจะสร้างแผนที่ว่างและ for-loop ในรายการและตรวจหาคีย์ที่ซ้ำกัน แต่ฉันกำลังมองหาวิธีแก้ปัญหาที่ชาญฉลาดและน่ากลัวมากกว่าที่นี่ btw ประเภทคีย์ - ค่าจริงที่ฉันใช้ที่นี่คือ(Int, Node)และฉันต้องการเปลี่ยนเป็นแผนที่(Int -> NodeSeq)
92 scala  map 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.