第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

聲明數(shù)組時出錯 >> int arr[];在 C++ 中(盡管在 Java 中有效)?

聲明數(shù)組時出錯 >> int arr[];在 C++ 中(盡管在 Java 中有效)?

肥皂起泡泡 2023-05-10 16:59:14
為什么我們不能int arr[];像 Java 那樣在 C++ 中聲明未指定大小的數(shù)組?當(dāng)我嘗試時,它給出了一個錯誤。不使用就可以嗎std::vector?附言。更新 8 月 3 日 11.24 pm IST 向所有我對此感到困惑的人道歉int arr[]={1,2,3,4,5};據(jù)我所知這是否意味著我們不能在 C++ 中聲明一個數(shù)組而不像上面那樣初始化它?, 如果我錯了請糾正我..
查看完整描述

4 回答

?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

“為什么我們不能聲明未指定大小的數(shù)組”——因為 C++ 語言標(biāo)準(zhǔn)說你不能。“像 Java”——因為 C++ 不是 Java。不同的語言有不同的設(shè)計目標(biāo)/標(biāo)準(zhǔn)以及不同的歷史。如果您想要 C++ 中的動態(tài)數(shù)組,可以使用的工具是std::vector. 數(shù)組在 C++ 中始終是靜態(tài)大小的(甚至更好std::array)。它需要知道預(yù)先分配多少空間(發(fā)生在編譯時,而不是運行時)。這對性能很重要,因為您知道它以后不會進行動態(tài)重新分配。在某些情況下,它還可以讓您了解對象的確切內(nèi)存布局和大小,這可能很重要。

您真的無法像您嘗試的那樣比較語言。每個都必須自己學(xué)習(xí)。你不能真的把東西從一個轉(zhuǎn)移到另一個——即使它看起來很相似。


查看完整回答
反對 回復(fù) 2023-05-10
?
交互式愛情

TA貢獻1712條經(jīng)驗 獲得超3個贊

在 C++ 中,我們必須在聲明數(shù)組時指定數(shù)組的大小。這是 C++ 創(chuàng)建者的設(shè)計選擇,可追溯到其 C 起源。

另一方面,在 Java 中,我們只用 聲明對數(shù)組對象的引用int arr[]。然后我們?yōu)閿?shù)組分配內(nèi)存,比如arr = new int[10]指定它的大小。

在 Java 中,數(shù)組是對象,就像 String 或 ArrayList 一樣。但在 C++ 中情況并非如此。


查看完整回答
反對 回復(fù) 2023-05-10
?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

Java 和 C++ 在這方面實際上非常相似,只是語法略有不同。


爪哇:


// declare a reference to an array of integers

int[] arr;

// allocate an array of 10 integers on the heap and store a reference in arr

arr = new int[ 10 ];

C++:


// declare a pointer to an integer, set it to null to be safe

int* arr = nullptr;

// allocate an array of 10 integers on the heap and store a pointer to it in arr

arr = new int[ 10 ];

Java 通過在您使用完數(shù)組一段時間后對其進行垃圾回收,從而使事情變得更容易一些。你幾乎可以在 C++ 中使用std::unique_ptr<int[]>or得到它std::shared_ptr<int[]>?;蛘遱td::vector<int>通常是更好的選擇。


您可能感到困惑的地方是 C++ 在堆棧上分配數(shù)組的能力。這些數(shù)組必須是在編譯時聲明的固定大小。Java沒有這個特性,只有原始類型和引用分配在棧上。


您還可以將這些固定大小的數(shù)組聲明為對象成員,然后將其存儲為對象的一部分。同樣,Java 沒有此功能,對象只能包含對數(shù)組的引用。


查看完整回答
反對 回復(fù) 2023-05-10
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

簡而言之,它需要知道要分配多少內(nèi)存。

std::vector 會在幕后為您重新分配內(nèi)存,如果您要實現(xiàn)自己的 std::vector,您可以先聲明一個特定大小的數(shù)組,并在需要調(diào)整任何內(nèi)存時使用。


查看完整回答
反對 回復(fù) 2023-05-10
  • 4 回答
  • 0 關(guān)注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號