Rumah > pembangunan bahagian belakang > C++ > Adakah std::vector Element Memory Bersebelahan dalam C ?

Adakah std::vector Element Memory Bersebelahan dalam C ?

Patricia Arquette
Lepaskan: 2024-12-20 18:56:10
asal
241 orang telah melayarinya

Is std::vector Element Memory Contiguous in C  ?

Keterkaitan Memori std::Elemen Vektor

Pemaju yang prihatin sering menimbulkan persoalan sama ada elemen dalam std::vector dijamin untuk bersebelahan. Sifat ini menentukan sama ada dibenarkan untuk menganggap penuding kepada elemen pertama sebagai tatasusunan gaya C.

Peruntukan Standard

Pada mulanya, piawaian C 98 diabaikan untuk menentukan aspek ini. Walau bagaimanapun, laporan teknikal (TR) seterusnya membetulkan pengawasan ini, dan piawaian C 0x yang akan datang akan memasukkannya sebagai keperluan yang jelas.

Spesifikasi TR

N2798, sebuah draf daripada C 0x, postulat:

"Vektor ialah a bekas jujukan yang menyokong iterator capaian rawak ... Unsur-unsur vektor disimpan secara bersebelahan, bermakna jika v ialah vektor dengan T ialah beberapa jenis selain bool, maka ia mematuhi identiti &v[n] == &v[0] n untuk semua 0 <= n < v.size()."

Contoh

Berdasarkan spesifikasi ini, pertimbangkan coretan kod berikut:

std::vector values;
// ... fill up values

if( !values.empty() )
{
    int *array = &values[0];
    for( int i = 0; i < values.size(); ++i )
    {
        int v = array[i];
        // do something with 'v'
    }
}

Jaminan standard C bahawa kod ini akan berfungsi seperti yang dimaksudkan dengan membenarkan akses memori terus kepada elemen vektor.

Atas ialah kandungan terperinci Adakah std::vector Element Memory Bersebelahan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan