Mengonversi C-Style Array ke std::array
di C++
C++ menyediakan kelas templat std::array
yang menawarkan sejumlah keunggulan dibandingkan array C-style tradisional. std::array
adalah wadah yang memiliki ukuran tetap dan menawarkan metode yang lebih aman dan efisien untuk mengelola data.
Berikut adalah beberapa cara untuk mengonversi array C-style ke std::array
di C++:
1. Menggunakan Inisialisasi List
Anda dapat menginisialisasi std::array
langsung dari inisialisasi list array C-style:
#include
int main() {
int c_array[] = {1, 2, 3, 4, 5};
std::array std_array = {c_array[0], c_array[1], c_array[2], c_array[3], c_array[4]};
// Menampilkan isi std_array
for (int i = 0; i < std_array.size(); ++i) {
std::cout << std_array[i] << " ";
}
std::cout << std::endl;
return 0;
}
Kode ini pertama-tama mendeklarasikan array C-style c_array
dengan nilai-nilai yang diberikan. Kemudian, std::array
std_array
diinisialisasi dengan nilai-nilai dari c_array
.
2. Menggunakan Algoritma std::copy
Anda dapat menggunakan algoritma std::copy
untuk menyalin elemen dari array C-style ke std::array
:
#include
#include
int main() {
int c_array[] = {1, 2, 3, 4, 5};
std::array std_array;
// Menyalin elemen dari c_array ke std_array
std::copy(std::begin(c_array), std::end(c_array), std_array.begin());
// Menampilkan isi std_array
for (int i = 0; i < std_array.size(); ++i) {
std::cout << std_array[i] << " ";
}
std::cout << std::endl;
return 0;
}
Kode ini menggunakan std::begin
dan std::end
untuk mendapatkan iterator ke awal dan akhir array C-style. Kemudian, std::copy
digunakan untuk menyalin elemen-elemen dari c_array
ke std_array
.
3. Menggunakan Iterasi Manual
Anda juga dapat secara manual mengulangi elemen-elemen array C-style dan menyalinnya ke std::array
:
#include
int main() {
int c_array[] = {1, 2, 3, 4, 5};
std::array std_array;
// Mengulangi dan menyalin elemen-elemen
for (int i = 0; i < 5; ++i) {
std_array[i] = c_array[i];
}
// Menampilkan isi std_array
for (int i = 0; i < std_array.size(); ++i) {
std::cout << std_array[i] << " ";
}
std::cout << std::endl;
return 0;
}
Kode ini menggunakan loop for
untuk mengulangi setiap elemen dalam c_array
dan menyalinnya ke std_array
.
Catatan: Pastikan bahwa ukuran array C-style dan std::array
sama. Jika tidak, Anda mungkin mengalami masalah seperti keluar dari batas array.