调试断言仅在某些情况下失败?C++
Debug Assertion Failed only with some cases? C++
我对C++很陌生,我想知道为什么我的代码只在某些情况下失败。每当 N> 3 时,就会出现调试断言失败?我很确定我只调用了现有的矢量值。任何帮助将不胜感激!谢谢!
我的代码如下:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N, input, sum=0;
vector <int> tasks;
cin >> N;
for (int a = 0; a <= N-1 ; a++){
cin >> input;
tasks.push_back(input);
}
sort(tasks.begin(), tasks.end());
if(N%2==0){
for (int i = 0; i<=N/2-1; i++) {
sum += 2 * tasks.front()*tasks.back();
tasks.erase(tasks.begin(), tasks.end());
}
}
else {
sum += tasks[(N + 1) / 2-1] * tasks[(N + 1) / 2-1];
tasks.erase(tasks.begin()+(N-1)/2);
for (int i = 0; i <= (N-2) / 2; i++) {
sum = sum + 2*tasks.front()*tasks.back();
tasks.erase(tasks.begin(), tasks.end());
}
}
cout << sum << endl;
system ("pause");
return 0;
}
检查您对 tasks.erase(tasks.begin((, tasks.end((( 的调用。它删除矢量中的所有元素。
相关文章:
- C++ strcpy 函数在少数主要情况下失败
- 在特定情况下失败
- 在儿童的特定情况下,向下渗透MIN二进制堆失败
- 在这种情况下,插入 std::map 可能会失败?
- 为什么我的代码在没有 chroot 函数的情况下工作,但使用 chroot 函数失败?
- 调试断言仅在某些情况下失败?C++
- “overload_cast”在特定情况下失败
- 在这种情况下,SetContextProperty()如何失败
- 解决方案重新生成在 30% 的情况下失败
- 在某些情况下,通配符模式匹配失败
- inotify_add_watch在没有此类文件或目录的情况下失败
- C 标准是否指定在某些情况下,编译应在错误中失败
- 在某些情况下,我的快速排序实现失败
- 在 boost::lockfree:queue 默认构造函数的情况下断言失败
- 为什么在这种情况下c++模板参数推导失败
- 尝试在 QLabel 上绘画失败(无法在没有对象的情况下调用成员函数"虚拟无效 QLabel::p aintEvent(QPaintEvent*)")
- 运行时检查失败 #3 - 变量"result"在未初始化的情况下被使用
- 'new'语句是否可以在不引发异常的情况下失败?
- 为什么程序在没有尝试/捕获的情况下失败
- 复制构造函数在相同的情况下失败或成功