欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中求數(shù)組長度的方法詳解

 更新時間:2023年12月28日 11:28:01   作者:luffy5459  
C++中沒有直接提供求數(shù)組長度的方法,提供了sizeof(),begin(),end()等方法,可以供求數(shù)組長度使用,文中通過代碼示例給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下

C++中沒有直接提供求數(shù)組長度的方法,提供了sizeof(),begin(),end()等方法,可以供求數(shù)組長度使用。

可以通過兩種方式來求數(shù)組長度,這里使用模版類。一個是使用sizeof()做除法,另一種辦法是通過end(),begin()做減法。代碼如下。

#include <iostream>
#include <string>
using namespace std;
template <class T>
int getArrSize(T& arr){
	return sizeof(arr) / sizeof(arr[0]);
}

template <class T>
int getArrLength(T& arr){
    return end(arr) - begin(arr);
}
int main(){
    string arr[] = {"a","b","c","e","f"};
    int arr2[] = {1,3,4,5};
    //string arr
    cout<<"sizeof(arr): "<<sizeof(arr)<<endl;
    cout<<"sizeof(arr[0]): "<<sizeof(arr[0])<<endl;
    cout<<"end(arr): "<<end(arr)<<endl;
    cout<<"begin(arr): "<<begin(arr)<<endl;
    cout<<"size of arr: "<<getArrSize(arr)<<endl;
    cout<<"length of arr:"<<getArrLength(arr)<<endl;

    //int arr
    cout<<"===================="<<endl;
    cout<<"sizeof(arr): "<<sizeof(arr2)<<endl;
    cout<<"sizeof(arr[0]): "<<sizeof(arr2[0])<<endl;
    cout<<"end(arr): "<<end(arr2)<<endl;
    cout<<"begin(arr): "<<begin(arr2)<<endl;
    cout<<"size of arr: "<<getArrSize(arr2)<<endl;
    cout<<"length of arr:"<<getArrLength(arr2)<<endl;
	return 0;
}

運行結果如下:

sizeof(arr): 120
sizeof(arr[0]): 24
end(arr): 0x7fff5a35b5d8
begin(arr): 0x7fff5a35b560
size of arr: 5
length of arr:5
====================
sizeof(arr): 16
sizeof(arr[0]): 4
end(arr): 0x7fff5a35b560
begin(arr): 0x7fff5a35b550
size of arr: 4
length of arr:4

對于第一種求數(shù)組長度的辦法,可能不是很明白,為什么需要sizeof()之后,需要除以sizeof(arr[0])。這里有幾點需要注意:

1、sizeof不是函數(shù),是操作符,它是編譯時求一個類型所占的字節(jié)數(shù)。

2、sizeof(arr):以長度4的int數(shù)組為例,其實求出了int類型數(shù)組所占總長度4*4=16。然后需要按照任意一個類型長度其實就是4來做除法。

到此這篇關于C++中求數(shù)組長度的方法詳解的文章就介紹到這了,更多相關C++中求數(shù)組長度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++?move()函數(shù)及priority_queue隊列使用記錄

    C++?move()函數(shù)及priority_queue隊列使用記錄

    move(obj)函數(shù)的功能是把obj當做右值處理,可以應用在對象的移動上,這篇文章主要介紹了C++?move()函數(shù)及priority_queue隊列使用記錄,需要的朋友可以參考下
    2023-01-01
  • Opencv實現(xiàn)傅里葉變換

    Opencv實現(xiàn)傅里葉變換

    這篇文章主要為大家詳細介紹了Opencv實現(xiàn)傅里葉變換的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • C++ 靜態(tài)成員的類內(nèi)初始化詳解及實例代碼

    C++ 靜態(tài)成員的類內(nèi)初始化詳解及實例代碼

    這篇文章主要介紹了C++ 靜態(tài)成員的類內(nèi)初始化詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-02-02
  • C/C++實現(xiàn)的游戲角色名稱名字隨機生成代碼

    C/C++實現(xiàn)的游戲角色名稱名字隨機生成代碼

    這篇文章主要介紹了C/C++實現(xiàn)的游戲角色名稱名字隨機生成代碼,本文特別針對一些古典游戲的角色名稱進行隨機生成,需要的朋友可以參考下
    2015-05-05
  • 深入理解Qt中各種消息框對話框的使用

    深入理解Qt中各種消息框對話框的使用

    本篇文章主要介紹了Qt中各種消息框的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • C++?數(shù)據(jù)結構超詳細講解順序表

    C++?數(shù)據(jù)結構超詳細講解順序表

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要創(chuàng)建這種元素組,用變量記錄它們,傳進傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲區(qū)里,元素間的順序關系由它們的存儲順序自然表示
    2022-03-03
  • C++ primer超詳細講解順序容器

    C++ primer超詳細講解順序容器

    本文主要介紹了C++順序容器(vector、deque、list)的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 如何通過UltraEdit解析BMP文件內(nèi)部結構(BMP位圖基礎)

    如何通過UltraEdit解析BMP文件內(nèi)部結構(BMP位圖基礎)

    我們先打開畫圖隨便畫一幅圖并采用24位bmp圖像格式保存,就得到了一張24位真彩色的位圖,下面我們來詳細分析bmp位圖的各個組成部分,感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • C語言指針類型與野指針引起的原因

    C語言指針類型與野指針引起的原因

    我們C語言獨一無二的特色——指針。說起指針,可能很多人都是還沒學就已經(jīng)聽說過其鼎鼎大名,因為有很多傳言和玩笑什么的說指針很難,其實大家大可不必有畏難情緒,指針這個東西雖然確實有一定難度,但是這是基于其優(yōu)秀的靈活性而衍生的一點小問題
    2023-02-02
  • C++隱式類型轉換運算符operator type()用法詳解

    C++隱式類型轉換運算符operator type()用法詳解

    這篇文章主要介紹了C++隱式類型轉換運算符operator type()用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論