Rumah > pembangunan bahagian belakang > C++ > Program C++: menambah elemen pada tatasusunan

Program C++: menambah elemen pada tatasusunan

王林
Lepaskan: 2023-08-25 22:29:21
ke hadapan
4904 orang telah melayarinya

Program C++: menambah elemen pada tatasusunan

Tatasusunan ialah struktur data jujukan linear yang digunakan untuk menyimpan data homogen dalam lokasi memori bersebelahan. Seperti struktur data lain, tatasusunan mesti mempunyai keupayaan untuk memasukkan, memadam, melintasi dan mengemas kini elemen dalam beberapa cara yang cekap. Dalam C++, tatasusunan kami adalah statik. Terdapat juga beberapa struktur tatasusunan dinamik yang disediakan dalam C++. Untuk tatasusunan statik, elemen Z boleh disimpan dalam tatasusunan. Setakat ini kita mempunyai n elemen. Dalam artikel ini, kita akan belajar cara memasukkan elemen pada penghujung tatasusunan (juga dikenali sebagai menambahkan elemen) dalam C++.

Fahami konsep melalui contoh

Kata kunci 'ini' digunakan seperti berikut

Given array A = [10, 14, 65, 85, 96, 12, 35, 74, 69]
After inserting 23 at the end, the array will look like this:
[10, 14, 65, 85, 96, 12, 35, 74, 69, 23]
Salin selepas log masuk

Dalam contoh di atas, katakan kita mempunyai tatasusunan A yang boleh memuatkan sehingga 50 elemen. Jadi, nilai Z ialah 50. Sekarang pertimbangkan dahulu bahawa terdapat 9 elemen di dalamnya. Oleh itu, saiz tatasusunan n ialah 9. Untuk memasukkan elemen lain di hujung tatasusunan, dalam kes kami 23. Elemen akan diletakkan di hujung dan bilangan elemen dalam A akan ditambah sebanyak 1. Jadi n menjadi 10. Oleh kerana kita memasukkan pada akhir, prosesnya mudah. Kita hanya boleh menambah elemen baharu selepas semua elemen tanpa mengubah kedudukan mana-mana elemen sedia ada dalam tatasusunan. Sekarang mari kita lihat algoritma bersama-sama dengan kod pelaksanaan C++ untuk pemahaman yang jelas.

Algoritma

  • Ambil tatasusunan A sebagai input, bilangan elemen n sebagai input, dan elemen e yang akan dimasukkan ke dalam A

  • Jika n ialah

    • A[n ] = e

  • Tamat jika

  • Tingkatkan n kepada n := n + 1

  • Mengembalikan array A dan saiz baru n

Contoh

#include <iostream>
# define Z 50

using namespace std;

void displayArr(int arr[], int n){
   for( int i = 0; i < n; i++ ){
      cout << arr[ i ] << ", ";
   }
   cout << endl;
}
void insertAtEnd( int arr[], int &n, int e ){
   if( n < Z ) {
      arr[ n ] = e;
   }
   n = n + 1;
}

int main() {
   int arr[ Z ] = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};
   int n = 12;
   
   cout << "Array before insertion: ";
   displayArr( arr, n );
   
   cout << "Inserting 58 at the end:" << endl;
   insertAtEnd( arr, n, 58 );
   
   cout << "Array after insertion: ";
   displayArr( arr, n );
   
   cout << "Inserting 225 at the end:" << endl;
   insertAtEnd( arr, n, 225 );
   
   cout << "Array after insertion: ";
   displayArr( arr, n );
}
Salin selepas log masuk

Output

Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 58 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 
Inserting 225 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 225,
Salin selepas log masuk
Salin selepas log masuk

Tambah elemen menggunakan vektor

Vektor ialah struktur data dinamik yang disertakan dengan C++ STL. Kami juga boleh mendapatkan fungsi yang serupa seperti tatasusunan dalam vektor. Di dalam vektor kita menggunakan fungsi push_back() untuk memasukkan fungsi pada penghujungnya. Fungsi push_back mengambil elemen baharu sebagai hujah dan memasukkan elemen pada penghujung vektor yang diberikan. Algoritmanya mudah. Kita tidak perlu melakukan sesuatu yang istimewa, cuma panggil fungsi objek vektor yang diberikan dengan menghantar elemen baru yang ingin kita masukkan. Mari lihat secara langsung pelaksanaan C++.

Contoh

#include <iostream>
#include <vector>
# define Z 50

using namespace std;

void displayArr( vector<int> v ){
   for( int i = 0; i < v.size() ; i++ ){
      cout << v[ i ] << ", ";
   }
   cout << endl;
}

vector<int> insertAtEnd( vector<int> A, int e ){
   A.push_back( e );
   return A;
}

int main() {
   vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};  
   cout << "Array before insertion: ";
   displayArr( A );
   
   cout << "Inserting 58 at the end:" << endl;
   A = insertAtEnd( A, 58 );
   
   cout << "Array after insertion: ";
   displayArr( A );
   
   cout << "Inserting 225 at the end:" << endl;
   A = insertAtEnd( A, 225 );
   
   cout << "Array after insertion: ";
   displayArr( A );
}
Salin selepas log masuk

Output

Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 58 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 
Inserting 225 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 225,
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Array ialah salah satu struktur data paling mudah untuk menyimpan data homogen secara berterusan. Tatasusunan ialah struktur data. Seperti struktur data lain, kami juga boleh memasukkan, memadam, mengemas kini dan melintasi elemen tatasusunan dengan mudah. Dalam artikel ini, kita telah melihat dua kaedah memasukkan elemen pada penghujungnya, dengan kata lain, menambahkan elemen pada tatasusunan. Dalam pendekatan pertama, kami menggunakan tatasusunan statik dalam C++. Memandangkan sasaran kami ialah kedudukan akhir, tidak perlu memindahkan sebarang elemen dalam tatasusunan, cuma tambah elemen baharu pada indeks terakhir dan tambahkan jumlah parameter kiraan item untuk kegunaan selanjutnya. Dalam kes kedua kita menggunakan vektor. Vektor adalah seperti tatasusunan biasa dalam C++, tetapi ia bersifat dinamik. Ia secara automatik mengemas kini jumlah saiznya apabila diperlukan. C++ STL menyokong vektor, yang mempunyai fungsi khas yang dipanggil push_back() untuk memasukkan elemen di bahagian belakang. Walau bagaimanapun, kita tidak boleh menambah elemen pada permulaan dengan kaedah yang mudah dan mudah ini.

Atas ialah kandungan terperinci Program C++: menambah elemen pada tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan