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

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

23
วิธีที่มีประสิทธิภาพมากที่สุดในการลบข้อมูลที่ซ้ำกันและเรียงลำดับเวกเตอร์คืออะไร
ฉันต้องใช้เวกเตอร์ C ++ ที่อาจมีองค์ประกอบจำนวนมากลบรายการที่ซ้ำกันและเรียงลำดับ ขณะนี้ฉันมีรหัสด้านล่าง แต่มันใช้งานไม่ได้ vec.erase( std::unique(vec.begin(), vec.end()), vec.end()); std::sort(vec.begin(), vec.end()); ฉันจะทำอย่างถูกต้องได้อย่างไร นอกจากนี้มันจะเร็วกว่าที่จะลบรายการที่ซ้ำก่อน (คล้ายกับรหัสด้านบน) หรือดำเนินการเรียงลำดับก่อนหรือไม่ หากฉันทำการเรียงลำดับก่อนจะรับประกันว่าจะยังคงเรียงลำดับหลังจากstd::uniqueถูกเรียกใช้งานหรือไม่? หรือมีวิธีอื่น (อาจมีประสิทธิภาพมากกว่า) ในการทำสิ่งนี้ทั้งหมดหรือไม่
274 c++  sorting  vector  stl  duplicates 

10
จะสรุปองค์ประกอบของเวกเตอร์ C ++ ได้อย่างไร
อะไรคือวิธีที่ดีในการหาผลรวมขององค์ประกอบทั้งหมดในstd::vector? สมมติว่าฉันมีเวกเตอร์ที่std::vector<int> vectorมีองค์ประกอบบางอย่างอยู่ในนั้น ตอนนี้ฉันต้องการหาผลรวมขององค์ประกอบทั้งหมด อะไรกันในวิธีเดียวกัน
240 c++  stl  vector 

16
เวกเตอร์กับรายการใน STL
ฉันสังเกตเห็นใน Effective STL vector เป็นชนิดของลำดับที่ควรใช้เป็นค่าเริ่มต้น มันหมายความว่าอะไร? ดูเหมือนว่าการเพิกเฉยต่อประสิทธิภาพvectorสามารถทำอะไรก็ได้ ใครช่วยเสนอสถานการณ์ที่vectorไม่มีตัวเลือกที่เป็นไปได้ แต่listต้องใช้?
238 c++  list  vector  stl 

1
std :: vector ถดถอยประสิทธิภาพเมื่อเปิดใช้งาน C ++ 11
ฉันพบการถดถอยของประสิทธิภาพที่น่าสนใจใน C ++ snippet ขนาดเล็กเมื่อฉันเปิดใช้ C ++ 11: #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { container.push_back(Item()); } return 0; } ด้วย g ++ (GCC) 4.8.2 20131219 …
235 c++  performance  gcc  c++11  vector 

20
แยกเวกเตอร์เป็นชิ้นใน R
ฉันต้องแยกเวคเตอร์เป็น n ชิ้นที่มีขนาดเท่ากันในอาร์ฉันไม่สามารถหาฟังก์ชันพื้นฐานใด ๆ นอกจากนี้ Google ยังไม่ได้รับฉันทุกที่ ดังนั้นนี่คือสิ่งที่ฉันมาด้วยหวังว่ามันจะช่วยให้ใครบางคนที่ไหน x <- 1:10 n <- 3 chunk <- function(x,n) split(x, factor(sort(rank(x)%%n))) chunk(x,n) $`0` [1] 1 2 3 $`1` [1] 4 5 6 7 $`2` [1] 8 9 10 ความคิดเห็นข้อเสนอแนะหรือการปรับปรุงใด ๆ ยินดีต้อนรับและชื่นชมจริงๆ ไชโยเซบาสเตียน
227 r  vector 

22
std :: vector ช้ากว่าอาเรย์ธรรมดามากหรือไม่?
ฉันมักจะคิดว่ามันเป็นภูมิปัญญาทั่วไปที่std::vector"นำไปใช้เป็นอาร์เรย์" blah blah blah วันนี้ฉันลงไปทดสอบและดูเหมือนว่าจะไม่เป็นเช่นนั้น: นี่คือผลการทดสอบบางส่วน: UseArray completed in 2.619 seconds UseVector completed in 9.284 seconds UseVectorPushBack completed in 14.669 seconds The whole thing completed in 26.591 seconds นั่นคือช้าลงประมาณ 3 - 4 เท่า! ไม่ปรับให้เหมาะสมกับความคิดเห็นที่ " vectorอาจช้ากว่าสำหรับ nanosecs สักสองสาม" และรหัสที่ฉันใช้: #include <cstdlib> #include <vector> #include <iostream> #include <string> #include <boost/date_time/posix_time/ptime.hpp> #include …
212 c++  arrays  performance  stl  vector 


19
การใช้อาร์เรย์หรือ std :: vectors ใน C ++ ช่องว่างของประสิทธิภาพคืออะไร
ในหลักสูตร C ++ เราไม่แนะนำให้ใช้อาร์เรย์ C ++ ในโครงการใหม่อีกต่อไป เท่าที่ฉันรู้ Stroustroup ตัวเองไม่แนะนำให้ใช้อาร์เรย์ แต่มีความแตกต่างด้านประสิทธิภาพที่สำคัญหรือไม่
208 c++  arrays  vector 

5
C ++ STL Vectors: รับตัววนซ้ำจากดัชนีหรือไม่
ดังนั้นฉันจึงเขียนโค้ดที่เข้าถึงองค์ประกอบใน stl เวกเตอร์โดย index [] แต่ตอนนี้ฉันต้องคัดลอกอันของเวกเตอร์ ดูเหมือนว่าvector.insert(pos, first, last)เป็นฟังก์ชั่นที่ฉันต้องการ ... ยกเว้นฉันจะมีครั้งแรกและครั้งสุดท้ายเป็น ints มีวิธีที่ดีที่ฉันสามารถใช้ตัววนซ้ำตามค่าเหล่านี้หรือไม่?
200 c++  stl  vector  iterator 

6
เมื่อใดที่ฉันควรเลือก Vector ใน Scala
ดูเหมือนว่าVectorจะมาช้าไปงานปาร์ตี้คอลเล็กชั่น Scala และโพสต์บล็อกที่มีอิทธิพลทั้งหมดได้ออกไปแล้ว ใน Java ArrayListเป็นคอลเลกชันเริ่มต้น - ฉันอาจใช้LinkedListแต่เมื่อฉันคิดว่าผ่านอัลกอริทึมและดูแลเพียงพอที่จะปรับให้เหมาะสม ใน Scala ฉันควรจะใช้Vectorเป็นค่าเริ่มต้นของฉันSeqหรือพยายามหาเวลาListที่เหมาะสมกว่าจริงหรือไม่

13
ท่านจะไม่ได้รับมรดกจาก std :: vector
ตกลงนี้มันยากที่จะสารภาพ std::vectorแต่ฉันจะมีสิ่งล่อใจที่แข็งแกร่งในขณะนี้จะได้รับมรดกจาก ฉันต้องการอัลกอริทึมแบบกำหนดเองประมาณ 10 แบบสำหรับเวกเตอร์และฉันต้องการให้พวกเขาเป็นสมาชิกของเวกเตอร์โดยตรง แต่โดยธรรมชาติฉันต้องการมีส่วนstd::vectorต่อประสานที่เหลือ ความคิดแรกของฉันในฐานะพลเมืองที่ปฏิบัติตามกฎหมายคือการมีstd::vectorสมาชิกในMyVectorชั้นเรียน แต่จากนั้นฉันจะต้องทบทวนส่วนติดต่อทั้งหมดของ std :: vector อีกครั้งด้วยตนเอง พิมพ์มากเกินไป ต่อไปฉันนึกถึงมรดกส่วนตัวดังนั้นแทนที่จะใช้วิธีประณามฉันจะเขียนบทความหลายusing std::vector::memberเรื่องในส่วนสาธารณะ อันนี้น่าเบื่อจริง ๆ แล้ว และฉันอยู่ที่นี่ฉันคิดว่าฉันสามารถสืบทอดต่อสาธารณชนได้ง่ายstd::vectorๆ แต่ให้คำเตือนในเอกสารที่ว่าคลาสนี้ไม่ควรใช้ polymorphically ฉันคิดว่านักพัฒนาส่วนใหญ่มีความสามารถพอที่จะเข้าใจได้ว่าสิ่งนี้ไม่ควรใช้ polymorphically อยู่ดี การตัดสินใจของฉันเป็นการไม่ยุติธรรมอย่างแน่นอนหรือไม่? ถ้าเป็นเช่นนั้นทำไม คุณสามารถให้ทางเลือกซึ่งจะมีสมาชิกเพิ่มเติมจริง ๆ แล้วสมาชิก แต่จะไม่เกี่ยวข้องกับการพิมพ์หน้าจอทั้งหมดของเวกเตอร์อีกครั้งหรือไม่ ฉันสงสัยมัน แต่ถ้าคุณทำได้ฉันก็จะมีความสุข นอกจากนี้นอกเหนือจากความจริงที่ว่าคนงี่เง่าบางคนสามารถเขียนสิ่งที่ชอบ std::vector<int>* p = new MyVector มีอันตรายอื่นที่เหมือนจริงในการใช้ MyVector หรือไม่? โดยบอกว่าสมจริงฉันจะละทิ้งสิ่งต่าง ๆ อย่างเช่นจินตนาการถึงฟังก์ชั่นที่ใช้ตัวชี้ไปยังเวกเตอร์ ... ฉันได้กล่าวถึงกรณีของฉัน ฉันได้กระทำบาป. ตอนนี้ก็ขึ้นอยู่กับคุณที่จะให้อภัยฉันหรือไม่ :)
189 c++  oop  inheritance  stl  vector 

8
วิธีที่ดีที่สุดในการเชื่อมสองเวกเตอร์คืออะไร?
ฉันกำลังใช้มัลติเธรดและต้องการผสานผลลัพธ์ ตัวอย่างเช่น: std::vector<int> A; std::vector<int> B; std::vector<int> AB; ฉันต้องการให้ AB ต้องมีเนื้อหาของ A และเนื้อหาของ B ตามลำดับนั้น วิธีที่มีประสิทธิภาพมากที่สุดในการทำอะไรเช่นนี้คืออะไร?
189 c++  vector 

4
ฉันจะคำนวณเวกเตอร์ปกติของส่วนของเส้นได้อย่างไร
สมมติว่าฉันมีส่วนของเส้นตรงเริ่มจาก (x1, y1) ถึง (x2, y2) ฉันจะคำนวณเวกเตอร์ปกติตั้งฉากกับเส้นได้อย่างไร ฉันสามารถค้นหาสิ่งต่าง ๆ มากมายเกี่ยวกับการทำสิ่งนี้กับเครื่องบินในแบบ 3 มิติ แต่ไม่มีสิ่ง 2 มิติ กรุณาไปที่เรื่องง่าย ๆ ทางคณิตศาสตร์ (เชื่อมโยงไปยังตัวอย่างการทำงานไดอะแกรมหรืออัลกอริทึมยินดีต้อนรับ) ฉันเป็นโปรแกรมเมอร์มากกว่าฉันเป็นนักคณิตศาสตร์;)
177 math  geometry  vector 

6
วิธีการเริ่มต้น std :: vector จากอาร์เรย์ C-style?
วิธีที่ถูกที่สุดในการเริ่มต้นstd::vectorอาร์เรย์จาก C-style คืออะไร? ตัวอย่าง: ในคลาสต่อไปนี้ฉันมีvectorแต่เนื่องจากข้อ จำกัด ภายนอกข้อมูลจะถูกส่งผ่านเป็นอาร์เรย์สไตล์ C: class Foo { std::vector<double> w_; public: void set_data(double* w, int len){ // how to cheaply initialize the std::vector? } เห็นได้ชัดว่าผมสามารถโทรและห่วงแล้วกว่าองค์ประกอบหรือโทรw_.resize() std::copy()มีวิธีการที่ดีกว่านี้ไหม?
174 c++  arrays  vector  stl 

11
แปลง data.frame คอลัมน์เป็นเวกเตอร์หรือไม่?
ฉันมีชื่อไฟล์เช่น: a1 = c(1, 2, 3, 4, 5) a2 = c(6, 7, 8, 9, 10) a3 = c(11, 12, 13, 14, 15) aframe = data.frame(a1, a2, a3) ฉันพยายามต่อไปนี้เพื่อแปลงคอลัมน์ใดคอลัมน์หนึ่งเป็นเวกเตอร์ แต่มันไม่ทำงาน: avector <- as.vector(aframe['a2']) class(avector) [1] "data.frame" นี่เป็นทางออกเดียวที่ฉันสามารถทำได้ แต่ฉันคิดว่าต้องมีวิธีที่ดีกว่าในการทำสิ่งนี้: class(aframe['a2']) [1] "data.frame" avector = c() for(atmp in aframe['a2']) { avector <- atmp …

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