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

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

4
เวกเตอร์ถูกส่งผ่านไปยังฟังก์ชันตามค่าหรือโดยการอ้างอิงใน C ++
ฉันกำลังเขียนโค้ดใน C ++ ถ้าฉันมีฟังก์ชันบางอย่างvoid foo(vector<int> test)และฉันเรียกมันในโปรแกรมของฉันเวกเตอร์จะถูกส่งต่อด้วยค่าหรือการอ้างอิงหรือไม่? ฉันไม่แน่ใจเพราะฉันรู้ว่าเวกเตอร์และอาร์เรย์มีความคล้ายคลึงกันและฟังก์ชันที่ต้องการvoid bar(int test[])จะผ่านการทดสอบโดยการอ้างอิง (ตัวชี้?) แทนที่จะเป็นค่า ฉันเดาว่าฉันจะต้องส่งเวกเตอร์ด้วยตัวชี้ / การอ้างอิงอย่างชัดเจนหากฉันต้องการหลีกเลี่ยงการส่งผ่านค่า แต่ฉันไม่แน่ใจ
97 c++  arrays  vector 

1
C ++ แปลงเวกเตอร์ <int> เป็นเวกเตอร์ <คู่>
เป็นวิธีการทำความสะอาดที่ดีที่จะแปลงอะไรไปstd::vector&lt;int&gt; intVec std::vector&lt;double&gt; doubleVecหรือโดยทั่วไปแล้วในการแปลงเวกเตอร์สองประเภทที่เปลี่ยนแปลงได้?

16
การใช้ Android vector Drawables ในช่วงก่อน Lollipop crash
ฉันใช้ vector drawables ใน Android ก่อน Lollipopและนี่คือไลบรารีและเวอร์ชันเครื่องมือบางส่วนของฉัน: Android Studio: 2.0 ปลั๊กอิน Android Gradle: 2.0.0.0 สร้างเครื่องมือ: 23.0.2 ไลบรารีการสนับสนุน Android: 23.3.0 ฉันเพิ่มคุณสมบัตินี้ในระดับแอปของฉัน Build.Gradle android { defaultConfig { vectorDrawables.useSupportLibrary = true } } นอกจากนี้ยังควรค่าแก่การกล่าวถึงว่าฉันใช้สิ่งที่วาดได้พิเศษเช่น LayerDrawable (layer_list) ตามที่ระบุไว้ในบล็อกอย่างเป็นทางการของ Android ( ลิงค์ที่นี่ ) สำหรับการตั้งค่า drawables สำหรับ vector drawables นอกapp:srcCompat &lt;level-list xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;item android:drawable="@drawable/search"/&gt; &lt;/level-list&gt; คุณจะพบการอ้างอิงเวกเตอร์ที่วาดได้โดยตรงนอกแอป: …

5
วิธีที่ง่ายที่สุดในการแปลงอาร์เรย์เป็นเวกเตอร์คืออะไร?
วิธีที่ง่ายที่สุดในการแปลงอาร์เรย์เป็นเวกเตอร์คืออะไร? void test(vector&lt;int&gt; _array) { ... } int x[3]={1, 2, 3}; test(x); // Syntax error. ฉันต้องการแปลง x จากอาร์เรย์ int เป็นเวกเตอร์ด้วยวิธีที่ง่ายที่สุด
94 c++  arrays  vector 

2
Octave / Matlab: ขยายเวกเตอร์เพื่อให้มันซ้ำตัวเอง?
มีวิธีขยายเวกเตอร์โดยทำให้มันซ้ำหรือไม่? &gt;v = [1 2]; &gt;v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl จากนั้น v10 จะเป็น: &gt;v10 1 2 1 2 1 2 1 2 1 2 สิ่งนี้ควรใช้ได้กับกรณีทั่วไปไม่ใช่เฉพาะกับ [1 2]
93 matlab  vector  octave 

7
วิธีสร้างเวกเตอร์ R ว่างเพื่อเพิ่มรายการใหม่
ฉันต้องการใช้ R ใน Python ตามที่โมดูล Rpy2 ให้มา ฉันสังเกตเห็นว่า R มี[]การดำเนินการที่สะดวกมากซึ่งคุณสามารถแยกคอลัมน์หรือบรรทัดเฉพาะได้ ฉันจะบรรลุฟังก์ชันดังกล่าวโดยสคริปต์ Python ได้อย่างไร ความคิดของฉันคือการสร้างเวกเตอร์ R และเพิ่มองค์ประกอบที่ต้องการลงในเวกเตอร์นี้เพื่อให้เวกเตอร์สุดท้ายเหมือนกับใน R ฉันสร้าง a seq()แต่ดูเหมือนว่ามันจะมีตัวเลขเริ่มต้น 1 ดังนั้นผลลัพธ์สุดท้ายจะเสมอ เริ่มต้นด้วยหลัก 1 ซึ่งไม่ใช่สิ่งที่ฉันต้องการ แล้วมีวิธีที่ดีกว่านี้ไหม?
93 python  r  vector  rpy2 

21
แปลงเวกเตอร์ <int> เป็นสตริง
ฉันมีvector&lt;int&gt;คอนเทนเนอร์ที่มีจำนวนเต็ม (เช่น {1,2,3,4}) และฉันต้องการแปลงเป็นสตริงของแบบฟอร์ม "1,2,3,4" วิธีที่สะอาดที่สุดใน C ++ คืออะไร? ใน Python นี่คือวิธีที่ฉันจะทำ: &gt;&gt;&gt; array = [1,2,3,4] &gt;&gt;&gt; ",".join(map(str,array)) '1,2,3,4'
93 c++  vector  tostring 

3
จะบังคับใช้ความหมายการย้ายได้อย่างไรเมื่อเวกเตอร์เติบโตขึ้น
ฉันมีstd::vectorวัตถุของชั้นAหนึ่ง คลาสไม่สำคัญและมีตัวสร้างการคัดลอกและย้ายตัวสร้างที่กำหนดไว้ std::vector&lt;A&gt; myvec; ถ้าฉันเติมเวกเตอร์ด้วยAวัตถุ (โดยใช้เช่นmyvec.push_back(a)) เวกเตอร์จะมีขนาดใหญ่ขึ้นโดยใช้ตัวสร้างการคัดลอกA( const A&amp;)เพื่อสร้างอินสแตนซ์สำเนาใหม่ขององค์ประกอบในเวกเตอร์ ฉันสามารถบังคับใช้ตัวสร้างการย้ายของคลาสAแทนได้หรือไม่?

1
เหตุใดเวกเตอร์ <bool> ของ libc ++ :: const_reference จึงไม่ใช่บูล
มาตรา 23.3.7 คลาสvector&lt;bool&gt;[vector.bool] วรรค 1 ระบุ: template &lt;class Allocator&gt; class vector&lt;bool, Allocator&gt; { public: // types: typedef bool const_reference; ... อย่างไรก็ตามโปรแกรมนี้ไม่สามารถคอมไพล์เมื่อใช้ libc ++: #include &lt;vector&gt; #include &lt;type_traits&gt; int main() { static_assert(std::is_same&lt;std::vector&lt;bool&gt;::const_reference, bool&gt;{}, "?"); } นอกจากนี้ฉันทราบว่ามาตรฐาน C ++ มีความสอดคล้องกันในข้อกำหนดนี้ตลอดไปจนถึง C ++ 98 และฉันทราบเพิ่มเติมว่า libc ++ ไม่ได้ปฏิบัติตามข้อกำหนดนี้อย่างต่อเนื่องตั้งแต่การเปิดตัว libc ++ ครั้งแรก อะไรคือแรงจูงใจสำหรับการไม่ปฏิบัติตามนี้?


8
ทางเลือกสำหรับเวกเตอร์ <bool>
ตามที่ (หวังว่า) เราทุกคนรู้ว่าvector&lt;bool&gt;พังโดยสิ้นเชิงและไม่สามารถถือว่าเป็นอาร์เรย์ C ได้ วิธีที่ดีที่สุดในการรับฟังก์ชันนี้คืออะไร? จนถึงตอนนี้ความคิดที่ฉันคิดคือ: ใช้vector&lt;char&gt;แทนหรือ ใช้คลาส Wrapper และมี vector&lt;bool_wrapper&gt; พวกคุณจัดการกับปัญหานี้อย่างไร? ฉันต้องการc_array()ฟังก์ชั่น เป็นคำถามข้างเคียงถ้าฉันไม่ต้องการc_array()วิธีการใดวิธีที่ดีที่สุดในการแก้ไขปัญหานี้หากฉันต้องการเข้าถึงโดยสุ่ม ฉันควรใช้ deque หรืออย่างอื่น? แก้ไข: ฉันต้องการการปรับขนาดแบบไดนามิก สำหรับผู้ที่ไม่ทราบvector&lt;bool&gt;มีความเชี่ยวชาญเพื่อให้boolใช้เวลา 1 บิต ดังนั้นคุณจึงไม่สามารถแปลงเป็นอาร์เรย์สไตล์ C ได้ ฉันเดาว่า "เสื้อคลุม" เป็นการเรียกชื่อผิด ฉันกำลังคิดบางอย่างเช่นนี้: แน่นอนฉันต้องอ่านmy_boolเนื่องจากปัญหาการจัดตำแหน่งที่เป็นไปได้ :( struct my_bool { bool the_bool; }; vector&lt;my_bool&gt; haha_i_tricked_you;
92 c++  stl  vector  boolean 

6
ความจุเริ่มต้นของเวกเตอร์ใน C ++
อะไรคือสิ่งที่capacity()ของstd::vectorซึ่งถูกสร้างขึ้นโดยใช้ constuctor เริ่มต้น? ฉันรู้ว่าค่าsize()เป็นศูนย์ เราสามารถระบุว่าเวกเตอร์ที่สร้างขึ้นเริ่มต้นไม่เรียกการจัดสรรหน่วยความจำฮีปได้หรือไม่? std::vector&lt;int&gt; iv; iv.reserve(2345);วิธีนี้มันจะเป็นไปได้ที่จะสร้างอาร์เรย์ที่มีสำรองโดยพลการโดยใช้การจัดสรรเดียวเช่น สมมติว่าด้วยเหตุผลบางประการฉันไม่ต้องการเริ่มsize()วันที่ 2345 ตัวอย่างเช่นบน Linux (g ++ 4.4.5, kernel 2.6.32 amd64) #include &lt;iostream&gt; #include &lt;vector&gt; int main() { using namespace std; cout &lt;&lt; vector&lt;int&gt;().capacity() &lt;&lt; "," &lt;&lt; vector&lt;int&gt;(10).capacity() &lt;&lt; endl; return 0; } 0,10ถูกพิมพ์ เป็นกฎหรือไม่หรือผู้ขาย STL ขึ้นอยู่กับ?

6
เหตุใดฉันจึงไม่สามารถสร้างเวกเตอร์ของ lambdas (ชนิดเดียวกัน) ใน C ++ 11 ได้
ฉันพยายามสร้างเวกเตอร์แลมด้า แต่ล้มเหลว: auto ignore = [&amp;]() { return 10; }; //1 std::vector&lt;decltype(ignore)&gt; v; //2 v.push_back([&amp;]() { return 100; }); //3 ขึ้นกับสาย # 2 ก็รวบรวมดี แต่บรรทัด # 3 ให้ข้อผิดพลาดในการคอมไพล์ : ข้อผิดพลาด: ไม่มีฟังก์ชันที่ตรงกันสำหรับการเรียกไปที่ 'std :: vector &lt;main () :: &lt;lambda () &gt;&gt; :: push_back (main () :: &lt;lambda ()&gt;)' ฉันไม่ต้องการเวกเตอร์ของตัวชี้ฟังก์ชันหรือเวกเตอร์ของวัตถุฟังก์ชัน อย่างไรก็ตามเวกเตอร์ของวัตถุฟังก์ชันที่ห่อหุ้มนิพจน์แลมบ์ดาจริงจะใช้ได้สำหรับฉัน เป็นไปได้หรือไม่
90 c++  vector  lambda  c++11 

6
จะบอกได้อย่างไรว่าอะไรอยู่ในเวกเตอร์หนึ่งไม่ใช่เวกเตอร์อื่น?
ใน matlab มีวิธีค้นหาค่าในเวกเตอร์หนึ่ง แต่ไม่พบในอีกเวกเตอร์ ตัวอย่างเช่น: x &lt;- c(1,2,3,4) y &lt;- c(2,3,4) มีฟังก์ชั่นใดบ้างที่บอกฉันว่าค่าที่อยู่ในxนั้นไม่ได้yเป็น 1?
88 r  vector 

9
VectorDrawable - มีให้บริการสำหรับ Android เวอร์ชันก่อนอมยิ้มหรือไม่ [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการ1 ปีที่ผ่านมา ปรับปรุงคำถามนี้ พื้นหลัง ฉันสังเกตเห็นว่าตอนนี้ Android รองรับการวาดเวกเตอร์บางประเภทผ่านคลาสที่เรียกว่า " VectorDrawable " (และAnimatedVectorDrawable , BTW) ฉันค้นพบแล้วโดยดูว่ามีอะไรใหม่ในAndroid-Studio Android ฉันสงสัยว่าเรื่องนี้จะเป็นจุดสิ้นสุดของต้องใส่หลายไฟล์ในโฟลเดอร์หลาย ( mdpi, hdpi, xhdpiฯลฯ ) ซึ่งจะดีมากและอาจลดขนาดแอปในบางกรณี คำถาม ฉันต้องการถามคำถามสองสามข้อเกี่ยวกับชั้นเรียนใหม่นี้: เป็นไปได้ไหมที่จะใช้ใน Android เวอร์ชันเก่าหรืออาจจะผ่านทางไลบรารีของห้องสมุดสนับสนุนของ Google ฉันไม่คุ้นเคยกับวิธีการทำงาน แต่ Lollipop สามารถจัดการไฟล์ SVG ได้หรือไม่ สามารถทำอะไรก็ได้ที่ทำได้ในไฟล์ SVG หรือไม่? มีตัวอย่าง / บทแนะนำ / วิดีโอการใช้งานนอกเหนือจากเอกสารที่ฉันพบหรือไม่?

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