簡體   English   中英

數組聲明中的錯誤:表達式必須具有常量值

[英]Error in array declaration: Expression must have a constant value

我聲明了具有以下結構的全局結構:

typedef struct {
    int value;
    int index;
}element;

我有一個帶有k排序隊列的程序,我把每個中的最小值放入了一個heapSort (我正在使用一個數組)。 我在struct中使用索引值來跟蹤要從堆中彈出的元素。 現在,我想針對不同數量的隊列測試程序,所以我這樣做了:

for (int i = 10;i <= 50;i += 10) {
    const int k = i;
    element a[k];
}

但是我得到一個錯誤:

表達式必須具有恆定值

有什么辦法可以“欺騙”我嗎?

您聲明了一個array ,數組的大小無法更改。 要解決此問題,使用vector符合您的最大利益。

嘗試這個:

#include <vector>
vector <element> a(50);

要將元素從vector彈出,請嘗試以下操作:

a.erase(a.begin()+index_from_zero);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM