小编Tan*_*rty的帖子

C++向量插入排序算法方法 - 将向量传递给方法

我看到无处不在,无论我找到什么算法(如果有任何lol)在c ++中的向量上进行插入排序,它都不会工作,所以我假设它与我的代码有关.任何人都可以帮我找到一种方法,我可以将一个向量作为参数传递给一个方法,然后对它进行插入排序吗?此刻它等待几秒钟并显示未分类的所有值:(

插入排序代码

void insertionSort (vector<int> data, int n) 
{
int i, j, tmp;

 for (i=1; i<n; i++)
 {
     j=i;
     tmp=data[i];
     while (j>0 && tmp<data[j-1])
     {
           data[j]=data[j-1];
           j--;
     }
     data[j]=tmp;
 }
Run Code Online (Sandbox Code Playgroud)

代码的重要部分

        cout << "insertion sort" << endl;
        system("pause");
        insertionSort(numberVectors, i);
Run Code Online (Sandbox Code Playgroud)

让我知道,如果你不认为那些代码有什么问题,你想让我告诉你更多,应该只是这一点,其他的东西是无关紧要的,我认为

谢谢

c++ vector insertion-sort

2
推荐指数
1
解决办法
1万
查看次数

C++断言在运行时向量上失败表达式:向量下标超出范围

即时通讯这真的很烦人的错误信息.我知道我只是新手,但这似乎是我能想到的事情.任何人都可以告诉我哪里出错了吗?

运行时的消息是: Debug Assertion Failed!程序:....文件:c:\ program files\microsoft visual studio 10.0\vc\include\vector行:932表达式:向量下标超出范围

而代码是

#include "VectorIntStorage.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

void VectorIntStorage::Read(istream& r)
{
    char c[13];
    r >> c;
    r >> NumberOfInts; //gets number of ints for vector

    //numberVector = new std::vector<int> numberVector;

    for(int i = 0; i < NumberOfInts; i++)
    {
        r >> numberVector[i];
        cout << numberVector[i] << endl;

        if(_sortRead) //true
        {
            for(int k = 0; k < i; k++)
            {
                if(numberVector[i] < …
Run Code Online (Sandbox Code Playgroud)

c++ vector assertion

1
推荐指数
1
解决办法
3万
查看次数

标签 统计

c++ ×2

vector ×2

assertion ×1

insertion-sort ×1