为什么我会" void value not ignored as it ought to be"?
Why I'm getting " void value not ignored as it ought to be"?
我正在编写这个程序,并收到以下错误,请任何人帮助摆脱这个rid。https://practice.geeksforgeeks.org/problems/array-of-alternate-ve-and-ve-nos/0(。或者你们能解释一下我们在哪种情况下会出现这种类型的错误。
#include <iostream>
#include<vector>
using namespace std;
int rearrange(int array[],int N)
{
vector<int> vec1;
vector<int> vec2;
for(int i=0;i<N;i++)
{
if(array[i]<0)
vec1.push_back(array[i]);
else
vec2.push_back(array[i]);
}
int size_vec1;
int size_vec2;
size_vec1=vec1.size();
size_vec2=vec2.size();
for(int j=0;j<N;j++)
{
if(j/2==0 || size_vec2==0 )
{
array[j]=vec1.pop_back();
size_vec1-=1;
}
else
{
array[j]=vec2.pop_back();
size_vec2-=1;
}
}
}
void print_rearrangearray(int array[],int N)
{
for(int i=0;i<N;i++)
{
cout<<array[i]<<" ";
}
}
int main() {
int T;
cin>>T;
for(int i=0;i<T;i++)
{
int N;
cin>>N;
int array[N];
for(int i=0;i<N;i++)
cin>>array[i];
rearrange(array,N);
print_rearrangearray(array,N);
}
return 0;
}
我收到以下错误。
prog.cpp: In function ‘int rearrange(int*, int)’:
prog.cpp:24:22: error: void value not ignored as it ought to be
array[j]=vec1.pop_back();
^
prog.cpp:29:22: error: void value not ignored as it ought to be
array[j]=vec2.pop_back();
std::vector::pop_back()
的返回类型void
,这意味着它不返回任何内容。
首先获取值,然后弹出它:
array[j] = vec1.back(); // Get last item
vec1.pop_back(); // remove last item
vec2
也是如此。
演示问题的代码片段可以简化为:
#include<vector>
int main()
{
std::vector<int> v{1,2,3};
int i = v.pop_back();
return 0;
}
现在,如果你看一下std::vector::pop_back()
,那么你会看到pop_back()
的返回类型是void
,因此你的错误。
相关文章:
- 为什么我会" void value not ignored as it ought to be"?
- 为什么当我为 for(auto& it : myUnorderedMap) {... = std::move(it.second)} 时,我会得到一个 const 引用?
- Is it good to use SDL_PIXELFORMAT_UNKNOWN?
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- QString::utf16(): Is it UB or not?
- 我正在"void value not ignored as it ought to be"我该怎么办?
- GotW #88 中的"It doesn’t work for references that are members of objects"是什么意思?
- 如何使用set<pair<int,int> >::iterator itrator it迭代set<pair<int,int> >st中的值?
- CMap with CArray Inside it
- 这个给定的代码应该将给定的数字转换为尽可能滞后的数字,no.by 用 9.It 替换合适的数字是行不通的
- 为什么在使用 auto&&it=--vec.end(),是 UB 时自动推导左值引用?
- 您可以使用C 从在线编译器(repl.it)打开文件吗?
- 如何修复类"Invalid operands to binary expression "类" to "类" "错误 (repl.it)
- 在 std::list 中,std::d istance(it.begin(), std::p rev(it.end()
- 尝试分配函数指针时获取"Void value not ignored as it ought to be"
- 创建结构并传递IT功能
- C++ RVO: when it happens?
- "void value not ignored as it ought to be" - 出了什么问题?
- 在模板中使用类型类型的类型类型使用模板类别IT自我
- "void value not ignored as it ought to be" - 夸脱/C++