作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
placeNumbers 是一个函数,它应该将一个包含 n 个整数的 vector 和一个包含 n−1 个 bool 值的 vector 作为输入并返回一个包含 n 个整数的 vector 。 placeNumbers 应返回数字的排序,以满足 bool 值 vector 中编码的条件。 bool vector 中的值将为真,如果左边的数字小于右边的数字,否则为假。可以假定 vector 将按升序排列。
我在 tempNumbers[i + 1] = smaller.pop(); 的最后得到了一个错误;它说“不能将类型为“void”的值分配给类型为“int”的实体”
我不知道如何修复这个错误,我不确定我的代码是否能正确地满足作业的要求。这是我使用 C++ 的第一门类(class),所以如果我做了一些愚蠢的事情,请不要对我大喊大叫:(
#include <vector>
#include <algorithm>
#include <stack>
#include <queue>
#include "csce310assgnmnt02prt01.h"
#include <numeric>
using namespace std;
vector<int> placeNumbers(vector<int> numbers, vector<bool> signs){
vector<int> tempNumbers;
vector <int> sortedNumbers;
std::sort(numbers.begin(), numbers.end(), sortedNumbers);
int nbigger = accumulate(signs.begin(), signs.end(), 0);
int startIndex = sizeof(numbers) - (nbigger + 1);
std::stack<int>smaller;
for (int i = 0; i < startIndex; i++){
smaller.push(sortedNumbers[i]);
}
std::queue<int>bigger;
for (int i = startIndex + 1; i <sizeof(sortedNumbers); i++){
bigger.push(sortedNumbers[i]);
}
for (int i = 0; i < sizeof(signs); i++){
if (signs[i] == 0){
tempNumbers[i + 1] = smaller.pop();
}
if (signs[i] == 1){
tempNumbers[i + 1] = bigger.pop();
}
numbers = tempNumbers;
}
return numbers;
}
最佳答案
关于c++ - placeNumbers 应返回数字的顺序,以满足 bool 值 vector 中编码的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710365/
我是一名优秀的程序员,十分优秀!