Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ข้อดีของเวกเตอร์บนอาร์เรย์ใน C++


ที่นี่เราจะเห็นข้อดีและข้อเสียของเวกเตอร์เหนืออาร์เรย์ใน C++

  • เวกเตอร์เป็นคลาสเทมเพลต นี่คือโครงสร้าง C++ เท่านั้น Arrays เป็นโครงสร้างภาษาในตัว มีอาร์เรย์ในภาษาต่างๆ

  • เวกเตอร์ถูกนำมาใช้เป็นอาร์เรย์ไดนามิกพร้อมอินเทอร์เฟซรายการ อาร์เรย์สามารถนำมาใช้โดยใช้วิธีสแตติกหรือไดนามิกกับประเภทข้อมูลดั้งเดิม

ตัวอย่าง

#include<iostream>
#include<vector>
using namespace std;
int main() {
   int array[10]; //statically allocated array
   int* arr = new int[10]; //dynamically allocated array
   vector<int> vec;
}
  • ขนาดอาร์เรย์ได้รับการแก้ไข เมื่อสร้างอาร์เรย์ขึ้นมา เราไม่สามารถเปลี่ยนขนาดได้ ขนาดของเวกเตอร์เป็นไดนามิก หากเราเพิ่มองค์ประกอบใหม่ หากสถานที่นั้นไม่ว่าง จะสร้างพื้นที่ใหม่สำหรับมัน และพื้นที่เพิ่มเติมบางส่วน

  • หากอาร์เรย์ได้รับการจัดสรรแบบไดนามิก เราต้องจัดสรรใหม่ด้วยตนเอง แต่ในเวกเตอร์ เราไม่จำเป็นต้องจัดสรรคืน แต่จะจัดสรรคืนโดยอัตโนมัติ

ตัวอย่าง

#include<iostream>
#include<vector>
using namespace std;
int main() {
   int* arr = new int[10]; //dynamically allocated array
   delete(arr); //deallocate manually
   vector<int> vec; //will be deallocated when variable is out of scope
}
  • หากเราต้องการได้ขนาดของอาร์เรย์ที่จัดสรรแบบไดนามิก เราไม่สามารถหาขนาดได้อย่างง่ายดาย สำหรับเวกเตอร์ เราสามารถหาขนาดได้ในเวลาคงที่

  • หากเราต้องการส่งหนึ่งอาร์เรย์โดยใช้พารามิเตอร์ของฟังก์ชัน เราต้องส่งตัวแปรอื่นสำหรับขนาดหรือความยาว ถ้าเราส่งเวกเตอร์ เราก็ไม่จำเป็นต้องส่งผ่านตัวแปรอื่น

  • เราไม่สามารถคืนค่าหนึ่งอาร์เรย์ได้ เว้นแต่เราจะใช้อาร์เรย์ใหม่ที่จัดสรรแบบไดนามิก แต่เราสามารถคืนค่าเวกเตอร์จากฟังก์ชันได้