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

อาร์เรย์คือการจัดเรียงวัตถุที่คล้ายกันอย่างเป็นระบบโดยปกติจะอยู่ในแถวและคอลัมน์

30
เหตุใดอาร์เรย์แบบ zero-based จึงเป็นบรรทัดฐาน?
คำถามที่ถามนี่ทำให้ผมนึกถึงของการสนทนาที่ฉันมีกับโปรแกรมเมอร์เพื่อน เขาแย้งว่าควรใช้อาเรย์แบบ zero-based อาเรย์แบบ one-based เนื่องจากอาเรย์ที่เป็นแบบ zero-based นั้นเป็นรายละเอียดการใช้งานที่มีต้นกำเนิดมาจากวิธีการทำงานของอาเรย์และพอยน์เตอร์และการทำงานฮาร์ดแวร์คอมพิวเตอร์ ภาษา ตอนนี้ฉันไม่ถนัดในการโต้วาทีดังนั้นฉันจึงไม่สามารถเสนอเหตุผลที่ดีในการติดตั้งอาร์เรย์แบบ zero-based นอกเหนือจากที่พวกเขารู้สึกว่าเหมาะสมกว่า เหตุใดจึงเป็นจุดเริ่มต้นทั่วไปของอาร์เรย์
112 array 

3
ฉันจะย้ายออกจากโรงเรียนแห่งความคิด“ for-loop” ได้อย่างไร?
นี่เป็นคำถามที่ค่อนข้างเป็นแนวคิด แต่ฉันหวังว่าฉันจะได้รับคำแนะนำที่ดีเกี่ยวกับเรื่องนี้ การเขียนโปรแกรมจำนวนมากที่ฉันทำคือกับอาร์เรย์( NumPy ); ฉันมักจะต้องจับคู่รายการในสองอาร์เรย์ขึ้นไปที่มีขนาดแตกต่างกันและสิ่งแรกที่ฉันไปคือ for-loop หรือแย่กว่านั้นเป็นซ้อนสำหรับ for-loop ฉันต้องการหลีกเลี่ยงการวนซ้ำมากที่สุดเพราะมันช้า (อย่างน้อยใน Python) ฉันรู้ว่าสิ่งต่าง ๆ มากมายกับ NumPy มีคำสั่งที่กำหนดไว้ล่วงหน้าที่ฉันเพียงแค่ต้องทำการวิจัย แต่คุณ (เป็นโปรแกรมเมอร์ที่มีประสบการณ์มากกว่า) มีกระบวนการคิดทั่วไปที่อยู่ในใจเมื่อคุณต้องทำอะไรบางอย่าง? ดังนั้นฉันมักจะมีสิ่งนี้ซึ่งน่ากลัวและฉันต้องการหลีกเลี่ยง: small_array = np.array(["one", "two"]) big_array = np.array(["one", "two", "three", "one"]) for i in range(len(small_array)): for p in range(len(big_array)): if small_array[i] == big_array[p]: print "This item is matched: ", small_array[i] …
79 python  array  loops 

6
กำลังเริ่มต้นอักขระถ่าน [] ด้วยการฝึกตัวอักษรที่ไม่ถูกต้องหรือไม่?
ฉันกำลังอ่านหัวข้อเรื่อง"strlen vs sizeof" บน CodeGuruและหนึ่งในคำตอบกล่าวว่า "มันเป็นการปฏิบัติที่ไม่ดี [sic] สำหรับ initialie [sic] charอาร์เรย์ที่มีตัวอักษรสตริง" นี่เป็นความจริงหรือว่าเป็นเพียงความคิดเห็นของเขา (แม้ว่าจะเป็น "สมาชิกระดับสูง")? นี่คือคำถามเดิม: #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } ขวา. ขนาดควรเป็นความยาวบวก 1 ใช่ไหม นี่คือผลลัพธ์ the size …

5
การใช้. ใด ๆ () ในรายการ C # <> คืออะไร
ฉันได้คุยเรื่องนี้กับเพื่อนร่วมงานและเราไม่สามารถเข้าใจได้ว่าการใช้งานนั้นมีประโยชน์.AnyสำหรับอะไรList&lt;&gt;ใน C # คุณสามารถตรวจสอบความถูกต้องขององค์ประกอบในอาร์เรย์เช่นคำสั่งต่อไปนี้: if (MyList.Any()){ ...} //Returns true or false ซึ่งเป็นสิ่งเดียวกัน if (MyList.Count() != 0) { ... } และเป็นเรื่องธรรมดามากขึ้นอ่านได้และชัดเจนเกี่ยวกับเจตนาของifข้อความ ในท้ายที่สุดเราติดอยู่กับความคิดนี้: .Any() สามารถใช้งานได้เช่นกัน แต่ไม่ชัดเจนเกี่ยวกับเจตนาของโปรแกรมเมอร์และในกรณีนี้ไม่ควรใช้ แต่เรารู้สึกว่ามันไม่ถูกต้อง เราต้องคิดถึงบางสิ่ง พวกเราคือ
40 c#  array  list 

2
PHP: จะใช้อาร์เรย์เมื่อใดและเมื่อใดที่จะใช้วัตถุสำหรับการสร้างรหัสเก็บข้อมูลส่วนใหญ่
PHP เป็นภาษากระบวนทัศน์ผสมอนุญาตให้ใช้และส่งคืนชนิดข้อมูลที่ไม่ใช่วัตถุเช่นอาร์เรย์ ฉันถามคำถามเพื่อพยายามอธิบายแนวทางบางอย่างสำหรับการเลือกอาร์เรย์กับวัตถุเมื่อตัดสินใจเลือกสิ่งที่โปรแกรมสร้างขึ้นเพื่อใช้ในสถานการณ์เฉพาะ นี่เป็นคำถามเกี่ยวกับวิธีการเข้ารหัสข้อมูลโดยใช้การสร้างภาษา PHP และเมื่อมีวิธีหนึ่งที่น่าจะเลือกมากกว่าเพื่อการส่งผ่านข้อมูล (เช่น Service-Oriented Architecture หรือบริการบนเว็บ) ตัวอย่าง สมมติว่าคุณมีประเภทรายการประกอบด้วย {cost, name, part_number, item_count} โปรแกรมของคุณเรียกร้องให้แสดงประเภทรายการดังกล่าวหลายประเภทซึ่งคุณต้องการใช้อาร์เรย์เป็นที่เก็บด้านนอกเพื่อเก็บรายการแต่ละประเภทไว้ [คุณยังสามารถใช้ PHP เป็นArrayObjectสำหรับกระบวนทัศน์ OO แต่คำถามของฉันไม่เกี่ยวกับการที่ (นอก) อาร์เรย์] คำถามของฉันเกี่ยวกับวิธีเข้ารหัสข้อมูลประเภทรายการและเกี่ยวกับกระบวนทัศน์ที่จะใช้ PHP ช่วยให้คุณใช้หรือPHP Native ArraysPHP Objects ฉันสามารถเข้ารหัสข้อมูลดังกล่าวได้สองวิธีดังนี้: //PHP's associative arrays: $ret = array( 0 =&gt; array( 'cost' =&gt; 10.00, 'name' =&gt; 'item1', 'part_number' =&gt; 'zyz-100', 'item_count' …

11
“ มิติที่สี่” ทำงานกับอาร์เรย์ได้อย่างไร
นามธรรม: ดังนั้นในขณะที่ฉันเข้าใจ (แม้ว่าฉันมีความเข้าใจที่ จำกัด มาก) มีสามมิติที่เรา (ปกติ) ทำงานร่วมกับร่างกาย: วันที่ 1 จะแสดงเป็นเส้น ที่สองจะถูกแทนด้วยตาราง ก้อนที่ 3 จะถูกแทนด้วยคิวบ์ ง่ายพอจนกว่าเราจะได้รับการ4 - มันเป็นเรื่องยากนะที่จะวาดในพื้นที่ 3D ถ้าคุณรู้ว่าสิ่งที่ฉันหมายถึง ... บางคนบอกว่ามันมีสิ่งที่จะทำอย่างไรกับเวลา คำถาม: ตอนนี้ถึงแม้ว่ามันจะไม่สมเหตุสมผลก็ตามทั้งหมดนั้นยอดเยี่ยมสำหรับฉัน คำถามของฉันไม่เกี่ยวกับเรื่องนี้หรือฉันจะถามมันใน MathSO หรือ PhysicsSO คำถามของฉันคือคอมพิวเตอร์จะจัดการกับอาร์เรย์ได้อย่างไร ฉันรู้ว่าคุณสามารถสร้างอาร์เรย์ 4D, 5D, 6D และอื่น ๆ ... ในภาษาการเขียนโปรแกรมที่แตกต่างกัน แต่ฉันต้องการที่จะรู้วิธีการทำงาน
30 theory  array 

3
ฉันควรใช้รายการหรืออาเรย์
ฉันกำลังทำงานบนฟอร์ม windows เพื่อคำนวณ UPC สำหรับหมายเลขรายการ ฉันประสบความสำเร็จในการสร้างหมายเลขที่จะจัดการหมายเลขรายการ / UPC ทีละรายการตอนนี้ฉันต้องการขยายและทำสำหรับหลายรายการหมายเลข / UPCs ฉันเริ่มและลองใช้รายการ แต่ฉันยังคงติดอยู่ ฉันสร้างคลาสผู้ช่วยเหลือ: public class Codes { private string incrementedNumber; private string checkDigit; private string wholeNumber; private string wholeCodeNumber; private string itemNumber; public Codes(string itemNumber, string incrementedNumber, string checkDigit, string wholeNumber, string wholeCodeNumber) { this.incrementedNumber = incrementedNumber; this.checkDigit = …
22 c#  array  winforms  list 

3
วิธีการอย่างมืออาชีพในการสร้างปัญหาใหญ่โดยไม่ต้องกรอกอาร์เรย์ขนาดใหญ่: C ++ หน่วยความจำฟรีจากส่วนหนึ่งของอาร์เรย์
ฉันกำลังพัฒนาแบบจำลองทางฟิสิกส์และเนื่องจากฉันค่อนข้างใหม่กับการเขียนโปรแกรมฉันยังคงพบปัญหาเมื่อผลิตโปรแกรมขนาดใหญ่ ฉันรู้เกี่ยวกับการจัดสรรและลบหน่วยความจำแบบไดนามิก (ใหม่ / ลบ ฯลฯ ) แต่ฉันต้องการวิธีที่ดีกว่าในการจัดโครงสร้างโปรแกรม สมมติว่าฉันกำลังจำลองการทดสอบที่ใช้งานมาสองสามวันด้วยอัตราการสุ่มตัวอย่างที่ใหญ่มาก ฉันต้องการจำลองตัวอย่างเป็นพันล้านตัวอย่าง ในฐานะเวอร์ชั่นที่เรียบง่ายที่สุดเราจะกล่าวว่าโปรแกรมใช้แรงดันไฟฟ้า V [i] และรวมเข้าด้วยกันเป็นห้า: ie NewV [0] = V [0] + V [1] + V [2] + V [3] + V [4] NewV [1] = V [1] + V [2] + V [3] + V [4] + V [5] ดังนั้น …
20 c++  data  memory  array  dynamic 

3
วิธีจัดเก็บข้อมูลที่สั่งซื้อในฐานข้อมูลเชิงสัมพันธ์
ฉันพยายามที่จะเข้าใจวิธีการจัดเก็บข้อมูลที่สั่งซื้ออย่างถูกต้องในฐานข้อมูลเชิงสัมพันธ์ ตัวอย่าง: สมมติว่าฉันมีเพลย์ลิสต์ประกอบด้วยเพลง ภายในฐานข้อมูลเชิงสัมพันธ์ของฉันฉันมีสารบัญPlaylistsประกอบด้วยข้อมูลเมตาบางส่วน (ชื่อผู้สร้าง ฯลฯ ) ฉันยังมีตารางที่เรียกว่าSongsที่มีข้อมูลplaylist_idรวมถึงข้อมูลเฉพาะเพลง (ชื่อศิลปินระยะเวลา ฯลฯ ) ตามค่าเริ่มต้นเมื่อมีการเพิ่มเพลงใหม่ลงในเพลย์ลิสต์เพลงจะถูกต่อท้าย เมื่อสั่งซื้อบน Song-ID (น้อยไปหามาก) คำสั่งซื้อจะเป็นลำดับของการเพิ่ม แต่ถ้าหากผู้ใช้สามารถสั่งซื้อเพลงในรายการเพลงได้อีกครั้ง ฉันคิดไอเดียสองสามข้อแต่ละข้อมีข้อดีและข้อเสีย: คอลัมน์เรียกว่าorderซึ่งเป็นจำนวนเต็ม เมื่อเพลงถูกย้ายลำดับของเพลงทั้งหมดระหว่างตำแหน่งเก่าและตำแหน่งใหม่จะเปลี่ยนไปเพื่อให้สอดคล้องกับการเปลี่ยนแปลง ข้อเสียของเรื่องนี้คือต้องมีการค้นหาจำนวนมากในแต่ละครั้งที่มีการย้ายเพลงและอัลกอริทึมการย้ายนั้นไม่สำคัญกับตัวเลือกอื่น ๆ คอลัมน์ที่เรียกว่าorderซึ่งเป็นทศนิยม ( NUMERIC) เมื่อเพลงถูกย้ายมันจะถูกกำหนดค่าจุดลอยตัวระหว่างตัวเลขสองตัวที่อยู่ติดกัน ข้อเสียเปรียบ: เขตข้อมูลทศนิยมใช้เนื้อที่มากขึ้นและอาจเป็นไปได้ที่จะใช้ความแม่นยำจนหมดเว้นแต่จะได้รับการดูแลเพื่อกระจายช่วงใหม่หลังจากการเปลี่ยนแปลงทุกครั้ง อีกวิธีหนึ่งก็คือการมีpreviousและnextฟิลด์ที่อ้างอิงเพลงอื่น ๆ (หรือเป็น NULL ในกรณีของเพลงแรก, resp. เพลงสุดท้ายในเพลย์ลิสต์ในขณะนี้โดยทั่วไปคุณสร้างรายการที่ลิงก์ ) ข้อเสียเปรียบ: ข้อความค้นหาเช่น 'find Xth Song ในรายการ' ไม่ใช่เวลาคงที่อีกต่อไป แต่จะเป็นเวลาเชิงเส้นแทน ขั้นตอนใดที่ใช้บ่อยที่สุดในการปฏิบัติ? ขั้นตอนใดที่เร็วที่สุดสำหรับฐานข้อมูลขนาดกลางถึงขนาดใหญ่ มีวิธีอื่นอีกไหมในการเก็บเรื่องนี้? แก้ไข:เพื่อความง่ายในตัวอย่างเพลงเป็นของเพลย์ลิสต์เดียวเท่านั้น (ความสัมพันธ์แบบหนึ่งต่อหนึ่ง) แน่นอนเราสามารถใช้ …

4
size_t หรือ int สำหรับส่วนข้อมูลดัชนี ฯลฯ
ใน C ++, size_t(หรืออย่างถูกต้องมากขึ้นT::size_typeซึ่งเป็น "มักจะ" size_t; เช่นunsignedประเภท) จะใช้เป็นค่าตอบแทนสำหรับsize()อาร์กิวเมนต์เพื่อoperator[]ฯลฯ (ดูstd::vector, et. al.) ในทางตรงกันข้ามภาษา. NET ใช้int(และเลือกlong) เพื่อจุดประสงค์เดียวกัน ในความเป็นจริงที่สอดคล้องกับ CLS ภาษาไม่จำเป็นต้องสนับสนุนประเภทที่ไม่ได้ลงชื่อ เนื่องจาก. NET นั้นใหม่กว่า C ++ มีบางสิ่งที่บอกฉันว่าอาจมีปัญหาในการใช้งานunsigned intแม้กระทั่งสิ่งที่ "ไม่สามารถ" เป็นลบได้เช่นดัชนีอาร์เรย์หรือความยาว C ++ เป็น "วัตถุทางประวัติศาสตร์" สำหรับความเข้ากันได้แบบย้อนหลังหรือไม่? หรือมีการแลกเปลี่ยนการออกแบบที่แท้จริงและสำคัญระหว่างสองแนวทาง เหตุใดเรื่องนี้ อืม ... ฉันควรใช้อะไรกับคลาสหลายมิติใหม่ใน C ++; size_tหรือint? struct Foo final // e.g., image, matrix, etc. { typedef …
15 c#  c++  array 

1
เหตุใดจึงเลือก sizeof (องค์ประกอบ) มากกว่า sizeof (TYPE) สำหรับการคำนวณจำนวนองค์ประกอบในอาร์เรย์
ฉันกำลังอ่าน "การโปรแกรม C ของ King KN" และพบข้อความต่อไปนี้: เราพูดถึงการใช้นิพจน์sizeof(a)/sizeof(a[0])เพื่อคำนวณจำนวนองค์ประกอบในอาร์เรย์ การแสดงออกsizeof(a)/sizeof(t)ที่ t คือประเภทขององค์ประกอบก็จะทำงานได้เช่นกัน แต่ก็ถือว่าเป็นเทคนิคที่ด้อยกว่า ทำไมจึงถือว่าเป็นเทคนิคที่ด้อยกว่า
15 c  array 

6
ทำไมอาร์เรย์ C ถึงมีความยาวไม่ถึง 0
มาตรฐาน C11 บอกว่าอาร์เรย์ทั้งขนาดและความยาวของตัวแปร "จะมีค่ามากกว่าศูนย์" อะไรคือเหตุผลที่ไม่อนุญาตให้มีความยาว 0 โดยเฉพาะอย่างยิ่งสำหรับอาร์เรย์ที่มีความยาวผันแปรมันเหมาะสมที่จะมีขนาดเป็นศูนย์ทุก ๆ ครั้ง นอกจากนี้ยังมีประโยชน์สำหรับอาร์เรย์แบบสแตติกเมื่อขนาดมาจากแมโครหรือตัวเลือกการกำหนดค่าการสร้าง GCC ที่น่าสนใจ (และเสียงดังกราว) ให้ส่วนขยายที่อนุญาตให้มีอาร์เรย์ความยาวเป็นศูนย์ Java ยังอนุญาตให้มีอาร์เรย์ของความยาวเป็นศูนย์
13 c  array 

2
ธรรมเนียมในการใช้วงเล็บเหลี่ยมสำหรับองค์ประกอบอาร์เรย์พัฒนาอย่างไร
ภาษาการเขียนโปรแกรมจำนวนมากใช้ไวยากรณ์a[i]เพื่ออ้างถึงiองค์ประกอบ 'ของอาร์เรย์ลำดับหรือเวกเตอร์a- โดยเฉพาะ C และ Pascal (จากช่วงปลายทศวรรษ 1960 และต้น 1970) ทำสิ่งนี้ ในทางตรงกันข้ามภาษาก่อนหน้านี้บางอย่างเช่น Fortran (จากปี 1950) ไม่ใช้การประชุมนี้ นอกจากนี้ฉันศึกษาวิชาคณิตศาสตร์นิดหน่อยและนักคณิตศาสตร์ใช้วงเล็บเหลี่ยมสำหรับช่วงเวลาและตัวห้อยสำหรับการดีอาเรย์และเมทริกซ์การห้อย (หรือวงเล็บปกติถ้าอาร์เรย์คิดว่าเป็นฟังก์ชั่นจากจำนวนเต็มไม่เป็นลบ) ดังนั้นคำถามของฉันคือ: สี่เหลี่ยมจัตุรัสในบริบทนี้พัฒนาขึ้นมาจากไหน / อย่างไร / ในบริบทใดและใครเป็นใคร? หมายเหตุ: ไม่ใช่คำถามที่เกี่ยวกับการใช้วงเล็บปีกกาในซี
11 history  array  syntax 

8
อะไรคือความแตกต่างระหว่าง Array และ Stack?
ตามวิกิพีเดียสแต็ค : เป็นชนิดข้อมูลนามธรรมเข้ามาก่อนออกก่อน (LIFO) และโครงสร้างข้อมูลเชิงเส้น ในขณะที่อาร์เรย์ : เป็นโครงสร้างข้อมูลที่ประกอบด้วยชุดขององค์ประกอบ (ค่าหรือตัวแปร) แต่ละรายการที่ระบุโดยดัชนีหรือคีย์อาร์เรย์อย่างน้อยหนึ่งรายการ เท่าที่ฉันเข้าใจพวกเขาค่อนข้างคล้ายกัน ดังนั้นอะไรคือความแตกต่างที่สำคัญ? หากไม่เหมือนกันอาร์เรย์จะทำอะไรได้บ้างที่สแต็กไม่สามารถและกลับกันได้

6
การดึงค่าสูงสุดจากช่วงในอาร์เรย์ที่ไม่เรียงลำดับ
ฉันมีอาร์เรย์ไม่ได้เรียงลำดับ ฉันมีข้อความค้นหาที่ให้ช่วงและค่าสูงสุดจากช่วงนั้นต้องส่งคืน ตัวอย่างเช่น: array[]={23,17,9,45,78,2,4,6,90,1}; query(both inclusive): 2 6 answer: 78 ฉันจะสร้างอัลกอริทึมหรือโครงสร้างข้อมูลใดเพื่อดึงค่าสูงสุดอย่างรวดเร็วจากช่วงใดก็ได้ (มีข้อความค้นหาจำนวนมาก) แก้ไข: นี่เป็นปัญหาจริงที่เรียบง่าย ฉันสามารถมีขนาดอาร์เรย์ที่มีขนาดใหญ่ถึง 100,000 และจำนวนการสืบค้นสูงสุดถึง 100,000 ดังนั้นฉันต้องมีการประมวลผลล่วงหน้าซึ่งจะช่วยให้การตอบแบบสอบถามรวดเร็วขึ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.