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

เวกเตอร์เป็นอาร์เรย์แบบมิติเดียว: ประกอบด้วยส่วนประกอบที่สามารถเข้าถึงได้โดยใช้ดัชนีอินทิกรัล ในบางภาษาขนาดของเวกเตอร์สามารถขยายหรือย่อขนาดได้ตามต้องการเพื่อรองรับการเพิ่มและลบรายการหลังจากสร้างเวกเตอร์แล้ว ใช้ 'กราฟิกแบบเวกเตอร์' สำหรับการแสดงผลกราฟิก

15
วิธีที่เร็วที่สุดในการค้นหาค่าสูงสุด / ต่ำสุดที่สอง (สาม ... ) ในเวกเตอร์หรือคอลัมน์
R เสนอสูงสุดและต่ำสุด แต่ฉันไม่เห็นวิธีที่รวดเร็วจริงๆในการหาค่าอื่นในการสั่งซื้อนอกเหนือจากการจัดเรียงเวกเตอร์ทั้งหมดแล้วเลือกค่า x จากเวกเตอร์นี้ มีวิธีที่เร็วกว่าเพื่อให้ได้ค่าที่สองสูงสุดหรือไม่
161 r  vector 

3
วิธีรับ std :: vector pointer ไปยังข้อมูลดิบ?
ฉันพยายามที่จะใช้std::vectorเป็นcharอาร์เรย์ ฟังก์ชั่นของฉันใช้เป็นตัวชี้โมฆะ: void process_data(const void *data); ก่อนที่ฉันจะใช้รหัสนี้: char something[] = "my data here"; process_data(something); ซึ่งทำงานได้ตามที่คาดหวัง แต่ตอนนี้ฉันต้องการพลังของstd::vectorฉันจึงลองใช้รหัสนี้แทน: vector<char> something; *cut* process_data(something); คำถามคือฉันจะส่ง char vector ไปยังฟังก์ชันของฉันได้อย่างไรเพื่อให้ฉันสามารถเข้าถึงข้อมูล raw ของเวกเตอร์ได้ (ไม่ว่าจะเป็นรูปแบบใด - float ฯลฯ ) ฉันลองสิ่งนี้: process_data(&something); และนี่: process_data(&something.begin()); warning C4238: nonstandard extension used : class rvalue used as lvalueแต่มันกลับชี้ไปยังข้อมูลที่ไม่มีความหมายและหลังให้คำเตือน:
160 c++  stl  vector 

8
ผนวกค่ากับเวกเตอร์เปล่าใน R?
ฉันพยายามเรียนรู้ R และฉันไม่สามารถหาวิธีผนวกเข้ากับรายการ ถ้านี่เป็นงูหลามฉันจะ . . #Python vector = [] values = ['a','b','c','d','e','f','g'] for i in range(0,len(values)): vector.append(values[i]) คุณทำเช่นนี้ใน R อย่างไร #R Programming > vector = c() > values = c('a','b','c','d','e','f','g') > for (i in 1:length(values)) + #append value[i] to empty vector
160 r  list  vector  append 

3
จะหาองค์ประกอบทั่วไปจากเวกเตอร์หลายตัวได้อย่างไร
มีใครบอกวิธีหาองค์ประกอบร่วมจากหลายเวคเตอร์ได้บ้าง a <- c(1,3,5,7,9) b <- c(3,6,8,9,10) c <- c(2,3,4,5,7,9) ฉันต้องการได้องค์ประกอบทั่วไปจากเวคเตอร์ด้านบน (เช่น 3 และ 9)
159 r  vector  r-faq 

5
เมื่อมีการจัดสรรเวกเตอร์พวกเขาจะใช้หน่วยความจำบนกองหรือกอง?
ข้อความต่อไปนี้ทั้งหมดเป็นจริงหรือไม่? vector<Type> vect; //allocates vect on stack and each of the Type (using std::allocator) also will be on the stack vector<Type> *vect = new vector<Type>; //allocates vect on heap and each of the Type will be allocated on stack vector<Type*> vect; //vect will be on stack and Type* will be …
151 c++  stl  vector  stack  heap 

4
ตัวเลือกระหว่าง vector :: resize () และ vector :: Reserve ()
ฉันจัดสรรหน่วยความจำล่วงหน้าให้กับvectorตัวแปรสมาชิกของฉัน รหัสด้านล่างเป็นส่วนที่น้อยที่สุด class A { vector<string> t_Names; public: A () : t_Names(1000) {} }; ตอนนี้ในบางจุดของเวลาถ้าเท่ากับt_Names.size() ฉันกำลังมีความประสงค์ที่จะเพิ่มขนาดโดย1000 100จากนั้นถ้ามันถึง1100ให้เพิ่มอีกครั้ง100และอื่น ๆ คำถามของฉันคือสิ่งที่ต้องเลือกระหว่างและvector::resize() vector::reserve()มีทางเลือกที่ดีกว่าในสถานการณ์ประเภทนี้หรือไม่? แก้ไข : t_Namesฉันมีการเรียงลำดับของการประมาณการที่แม่นยำสำหรับ เราคาดว่าจะเป็นรอบที่จะ700 800อย่างไรก็ตามในบาง (ไม่ค่อย) 1000สถานการณ์ก็สามารถเจริญเติบโตได้มากกว่า
151 c++  vector 

8
การจัดการหน่วยความจำ R / ไม่สามารถจัดสรรเวกเตอร์ที่มีขนาด n Mb
ฉันพบปัญหาในการพยายามใช้วัตถุขนาดใหญ่ใน R ตัวอย่างเช่น: > memory.limit(4000) > a = matrix(NA, 1500000, 60) > a = matrix(NA, 2500000, 60) > a = matrix(NA, 3500000, 60) Error: cannot allocate vector of size 801.1 Mb > a = matrix(NA, 2500000, 60) Error: cannot allocate vector of size 572.2 Mb # Can't go smaller anymore …

5
ใน Clojure ฉันควรใช้เวกเตอร์กับรายการและวิธีอื่น ๆ เมื่อใด
ฉันอ่านแล้วว่า Vectors ไม่ใช่ seqs แต่ Lists คือ ฉันไม่แน่ใจว่าเหตุผลสำหรับการใช้อย่างใดอย่างหนึ่งมากกว่าที่อื่น ดูเหมือนว่าเวกเตอร์จะถูกใช้มากที่สุด แต่มีเหตุผลสำหรับสิ่งนั้นหรือไม่?



5
อะไรคือความแตกต่างระหว่างชนิดข้อมูลเวกเตอร์และรายการใน R
อะไรคือความแตกต่างหลักระหว่างชนิดข้อมูลเวกเตอร์และรายการใน R ข้อดีหรือข้อเสียของการใช้ (หรือไม่) ข้อมูลทั้งสองประเภทนี้คืออะไร? ฉันขอขอบคุณที่เห็นตัวอย่างที่แสดงให้เห็นถึงกรณีการใช้งานของประเภทข้อมูล
127 list  r  vector 

4
แยกทุกองค์ประกอบที่ n ของเวกเตอร์
ฉันต้องการสร้างเวกเตอร์ซึ่งแต่ละองค์ประกอบเป็นi+6thองค์ประกอบของเวกเตอร์อื่น ตัวอย่างเช่นในเวกเตอร์ที่มีความยาว 120 ฉันต้องการสร้างเวกเตอร์อื่นที่มีความยาว 20 ซึ่งแต่ละองค์ประกอบเป็นค่าi, i+6, i+12, i+18...ของเวกเตอร์เริ่มต้นนั่นคือฉันต้องการแยกทุกองค์ประกอบที่ 6 ของต้นฉบับ
127 r  vector 

9
การ push_back องค์ประกอบจากเวกเตอร์เดียวกันปลอดภัยหรือไม่
vector<int> v; v.push_back(1); v.push_back(v[0]); หาก push_back ครั้งที่สองทำให้เกิดการจัดสรรใหม่การอ้างอิงถึงจำนวนเต็มแรกในเวกเตอร์จะใช้ไม่ได้อีกต่อไป อย่างนี้ไม่ปลอดภัยเหรอ? vector<int> v; v.push_back(1); v.reserve(v.size() + 1); v.push_back(v[0]); สิ่งนี้ทำให้ปลอดภัย?

10
ฉันจะรับค่าสูงสุด (หรือต่ำสุด) ในเวกเตอร์ได้อย่างไร
ฉันจะรับค่าสูงสุด (หรือต่ำสุด) ในเวกเตอร์ในC ++ ได้อย่างไร ฉันได้เห็นวิธีแก้ปัญหาบางอย่างสำหรับสิ่งนี้ใน Google แต่ไม่มีวิธีใดที่เหมาะสมสำหรับฉัน :( ใครช่วยอธิบายวิธีการหาค่าสูงสุดหรือต่ำสุดจากเวกเตอร์ให้เข้าใจง่าย ๆ หน่อยได้ไหม และฉันคิดผิดที่คิดว่าอาร์เรย์จะเหมือนกันมากหรือน้อย? ฉันต้องการตัววนซ้ำใช่ไหม ฉันลองแล้วmax_elementแต่ยังคงได้รับข้อผิดพลาด? vector<int>::const_iterator it; it = max_element(cloud.begin(), cloud.end()); ข้อผิดพลาด: ขอสมาชิก 'เริ่มต้น' ใน 'คลาวด์' ซึ่งเป็นประเภทที่ไม่ใช่คลาส 'int [10]' แก้ไข:ยังตอบไม่ได้ ??? ฉันจะวางไว้ที่นี่ ... ว้าวขอบคุณสำหรับการตอบกลับที่รวดเร็ว! ฉันลงเอยด้วยวิธีนี้คิดว่ามันโอเคไหม? for (unsigned int i = 0; i < cdf.size(); i++) if (cdf[i] < cdfMin) cdfMin …
123 c++  vector  max  min 

10
คุณคัดลอกเนื้อหาของอาร์เรย์ไปยัง std :: vector ใน C ++ โดยไม่ต้องวนซ้ำได้อย่างไร
ฉันมีอาร์เรย์ของค่าที่ส่งผ่านไปยังฟังก์ชันของฉันจากส่วนอื่นของโปรแกรมที่ฉันต้องการเก็บไว้เพื่อประมวลผลในภายหลัง เนื่องจากฉันไม่รู้ว่าฟังก์ชันของฉันจะถูกเรียกกี่ครั้งก่อนถึงเวลาประมวลผลข้อมูลฉันจึงต้องการโครงสร้างการจัดเก็บแบบไดนามิกดังนั้นฉันจึงเลือกไฟล์std::vector. ฉันไม่ต้องการให้มีการทำวงมาตรฐานค่าทั้งหมดเป็นรายบุคคลก็จะดีถ้าฉันสามารถคัดลอกทั้งหมดโดยใช้สิ่งที่คล้ายกับpush_backmemcpy
123 c++  stl  vector  copy 

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