ভেক্টর এবং তালিকা মধ্যে পার্থক্য

Anonim

ভেক্টর বনাম লিস্ট

প্রোগ্রামাররা, ভেক্টর এবং তালিকাগুলি প্রায়ই বিভ্রান্তিকর হয় সি ++ এবং জাভাতে অ্যারে হোল্ডিংয়ে ব্যবহৃত সিকোয়েন্স। দুটি শর্তগুলি অ্যারে অ্যাড্রেস ধারণ করে কিন্তু হ'ল অ্যারেগুলির বিভিন্ন পদ্ধতি।

মূল জিনিস যা আমরা জানতে চাই তা হল একটি অ্যারের একটি "তালিকা" যা কিছু বা সমস্ত তথ্য ধারণ করে, i। ঙ।, পূর্ণসংখ্যা, ফ্লোটিং পয়েন্ট বা অক্ষর এবং "বন্ধনী" "

আসলে, ভেক্টর এবং তালিকা ঘটনাগুলি অনুযায়ী কাজ করে। সুতরাং আসুন এই দুটি পদ এক দ্বারা এক চেহারা একবার।

ভেক্টর

ভেক্টরগুলি অ্যারে হোল্ডিং এবং উপাদানের অ্যাক্সেসে ব্যবহার করা হয়। এখানে আপনি "[]" অপারেটর ব্যবহার করে এলোমেলোভাবে কোনও উপাদান অ্যাক্সেস করতে পারেন। তাই সমস্ত উপাদান বা একটি নির্দিষ্ট উপাদান একটি ভেক্টর অপারেশন সঙ্গে চেহারা সহজ। সুতরাং যদি আপনি শেষে কোন বস্তু সন্নিবেশ, শুরুতে, বা মাঝখানে, তারপর ভেক্টর একটি প্লাস পয়েন্ট আছে কারণ আপনি র্যান্ডম ঠিকানা অ্যাক্সেস এবং সেখানে পরিবর্তন করতে পারেন যাইহোক, তালিকা বস্তুর তুলনায় ভেক্টর একটি বিট ধীর। ভেক্টরগুলিকে সিক্রোনাইজড অবজেক্ট হিসেবে বিবেচনা করা হয়, র্যান্ডম অ্যাক্সেসে দক্ষ এবং তারা সঠিকভাবে একটি সিঙ্কড হওয়া তালিকা দিয়ে ডেটা ধরে রাখে।

মাঝখানে (তালিকা) বা সামনে থেকে সন্নিবেশ বা মুছে ফেলার কোনও প্রয়োজন নেই এমন একটি ভেক্টর বাছাই করা হয়।

একটি অ্যারের উপাদানগুলির সংখ্যা নাটকীয়ভাবে পরিবর্তিত হতে পারে।

উদাহরণ:

ভেক্টর ভি;

v। ঢোকান (ভি। শুরু করুন (), 3);

বলুন (ভি আকার () == 1 && ভি। ক্ষমতা ()> = 1 && V [0] == 3);

তালিকা

তালিকাগুলি "ডবল লিঙ্কযুক্ত সিকোয়েন্স" - উভয় ফরোয়ার্ড এবং পশ্চাদপদ ট্র্যাভেরসাল সমর্থন করে। সন্নিবেশ এবং অপসারণ শুরু সময়, শেষ, এবং মাঝখানে গ্রহণ সময় স্থায়ী হয়। লিঙ্ক তালিকা মধ্যে সন্নিবেশ এবং splicing উপাদান কোন পুনরাবৃত্তির অকার্যকর না। শুধুমাত্র অপসারণ পুনরাবৃত্তিকে অমান্য করে। তারা সন্নিবেশিত না হয় যাতে তারা র্যান্ডমভাবে অ্যাক্সেসযোগ্য হয় না। পুনরাবৃত্তির ক্রম ব্যবহারকারী অনুযায়ী পরিবর্তন হতে পারে, তবে এটি উপাদানের কোনও পরিবর্তনকে প্রভাবিত করে না। তারা ভেক্টরগুলির তুলনায় দ্রুততর এবং উপাদান তালিকার শুরুতে, মধ্যবর্তী এবং শেষের সন্নিবেশ এবং মুছে দেওয়ার জন্য আদর্শ।

উদাহরণ:

# অন্তর্ভুক্ত

// তালিকা শ্রেণী-টেমপ্লেট সংজ্ঞা

…।

int main ()

{

এন্ট বিন্যাস [4] = {2, 6, 4, 8};

std:: তালিকা মান;

std:: অন্যান্য তালিকা;

সংক্ষিপ্ত বিবরণ:

1 একটি তালিকা সন্নিবেশিত হয় না যখন একটি ভেক্টর হয়।

2। তালিকাটির কোন ডিফল্ট আকার নেই যখন একটি ভেক্টর 10 এর একটি ডিফল্ট আকার থাকে।

3 তালিকা এবং ভেক্টর উভয় গতিশীলভাবে ক্রমবর্ধমান অ্যারে হয়।

4। একটি তালিকা থ্রেড নিরাপদ নয় যখন একটি ভেক্টর থ্রেড নিরাপদ।

5। তালিকাগুলি, যেগুলি শুধুমাত্র সামনে এবং পিছনের মধ্যে অন্তর্ভুক্ত এবং মুছে ফেলার জন্য প্রয়োগ করা হয়, যখন দ্রুত

ভেক্টরগুলি আরও বেশি সিপিইউ নেয়

6। একটি ভেক্টর তার আকার দ্বিগুণ বেড়েছে এবং একটি তালিকা অর্ধেক হ্রাস পায়, iঙ।, 50 শতাংশ.