เราได้รับเวกเตอร์และภารกิจคือการคำนวณจำนวนองค์ประกอบเหล่านั้นในเวกเตอร์ที่ตรงกับค่าเป้าหมายหรือเงื่อนไข
เวกเตอร์คือคอนเทนเนอร์ลำดับที่สามารถเปลี่ยนขนาดได้ คอนเทนเนอร์เป็นวัตถุที่เก็บข้อมูลประเภทเดียวกัน คอนเทนเนอร์ลำดับเก็บองค์ประกอบอย่างเคร่งครัดในลำดับเชิงเส้น
เวกเตอร์จัดเก็บองค์ประกอบในตำแหน่งหน่วยความจำที่อยู่ติดกัน และช่วยให้สามารถเข้าถึงองค์ประกอบใดๆ ได้โดยตรงโดยใช้ตัวดำเนินการตัวห้อย [] ต่างจากอาร์เรย์ เวกเตอร์สามารถย่อหรือขยายได้ตามต้องการในขณะใช้งาน การจัดเก็บเวกเตอร์จะได้รับการจัดการโดยอัตโนมัติ
เพื่อรองรับฟังก์ชันการย่อและขยายขณะรันไทม์ คอนเทนเนอร์เวกเตอร์อาจจัดสรรพื้นที่จัดเก็บพิเศษบางส่วนเพื่อรองรับการเติบโตที่เป็นไปได้ ดังนั้น คอนเทนเนอร์จึงมีความจุจริงมากกว่าขนาด ดังนั้น เมื่อเทียบกับอาร์เรย์ เวกเตอร์จะใช้หน่วยความจำมากกว่าเพื่อแลกกับความสามารถในการจัดการพื้นที่จัดเก็บและขยายแบบไดนามิกอย่างมีประสิทธิภาพ
ตัวอย่าง
Input − vector vec = {1, 2, 3, 4, 4, 4, 4} Target = 4 Output − count is: 4
คำอธิบาย − ในเวกเตอร์ที่กำหนด เป้าหมายเกิดขึ้น 4 ครั้ง ดังนั้นการนับเป็น 4
Input − vector vec = {1, 2, 3} Target = 4 Output − count is: 0
คำอธิบาย − ในเวกเตอร์ที่กำหนด เป้าหมายเกิดขึ้น 0 ครั้ง ดังนั้นการนับเป็น 0
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนเวกเตอร์และเก็บไว้ในตัวแปรประเภทเวกเตอร์ สมมุติว่า vec
-
ตั้งค่าเป้าหมายเป็นค่าจำนวนเต็ม
-
ใช้ตัวแปรชั่วคราวที่จะเก็บการนับ
-
เรียกใช้ฟังก์ชันการนับในตัวที่มีอยู่ใน C ++ STL และส่งผ่าน vec.begin(), vec.end() เป้าหมายไปที่การเรียกใช้ฟังก์ชัน
-
พิมพ์ผลลัพธ์
ตัวอย่าง
#include <algorithm> #include <iostream> #include <vector> using namespace std; int main(){ vector<int> myvector{ 1, 2, 3, 4, 4, 4, 4, 4 }; int target = 4; int res = count(myvector.begin(), myvector.end(), target); cout << "Target is: " << target << "\nCount is: " << res << endl; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -
Target is: 4 Count is: 5