[英]error: no matching function for call to 'std::vector<float>::push_back(std::vector<float>&) const'
[英]error: passing 'const std::vector<int>' as 'this' argument of 'void std::vector<_Tp, _Alloc>::push_back(const value_type&)
我無法將元素推送到向量中。
void Addvec(const vector<int> &v)
{
int num{};
cout<<"Enter the number you want to add";
cin>>num;
v.push_back(num);
cout<<"Added"<<endl;
}
這段代碼可能有什么問題?
功能:
void Addvec(const vector<int> &v)
狀態:我正在引用一個 int 常量向量,因此我保證我不會修改它。
但稍后,您嘗試將一個整數推入其中,修改向量:
v.push_back(num);
這違反了函數所做的 const 保證。
要修復錯誤,請從參數中刪除const
,或者不要修改函數中的向量。
GCC 給出以下錯誤:
錯誤:將“const std::vector<int>”作為“this”參數傳遞會丟棄限定符 [-fpermissive]
你的代碼有什么問題更清楚一點。
問題是const
。
正確的代碼如下:
void Addvec(vector<int> &v)
{
int num{};
cout<<"Enter the number you want to add";
cin>>num;
v.push_back(num);
cout<<"Added"<<endl;
}
一般而言,常量是不會改變的,在您的情況下,您可以修改函數中的向量。
我給你留下了一個有用的鏈接: const 關鍵字
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.