小编use*_*524的帖子

将 vector<char> 传递给指针 char*

如何将char向量传递给char *?我知道这个问题可以很容易地用一个带有 SIZE const 的预定义 char[] 数组来解决,但我想要一个向量的灵活性,因为没有预定义的大小。

using namespace std;

//prototype 
void getnumberofwords(char*);

int main() {
    //declare the input vector
    vector<char> input;

    /*here I collect the input from user into the vector, but I am omitting the code here for sake of brevity...*/

    getnumberofwords(input); 
    //here is where an ERROR shows up: there is no suitable conversion from std::vector to char*                     
    return 0;
}

void getnumberofwords(char *str){
    int numwords=0;
    int lengthofstring = (int)str.size();  
    //this ERROR says the expression must have a …
Run Code Online (Sandbox Code Playgroud)

c++ pointers vector

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

检测到堆损坏:在正常块之后(#126)

我一生都无法弄清楚为什么会出现此调试错误:

检测到堆损坏:在 0x004cF6c0 处的正常块 (#126) 之后,CRT 检测到应用程序在堆 bugger 结束后写入内存。

我知道每当使用 new 运算符时都需要释放内存,我就是这样做的,但仍然遇到问题。

由于某种原因,程序无法在递归函数中正确结束。我对其进行了调试,并使用断点检查了每一行代码。

在 countSum 中 if 语句的末尾,它以某种方式从 i 中减去 1,然后重新进入 if 块......这是不应该做的。

为什么会出现这种情况?

/*this program calculates the sum of all the numbers in the array*/

#include <iostream>
#include <time.h>

using namespace std;

/*prototype*/
void countSum(int, int, int, int*);

int main(){

    bool flag;
    int num;

    int sum = 0, j=0;
    int *array =  new int;

    do{

        system("cls");
        cout<<"Enter a number into an array: ";
        cin>>array[j];

        cout<<"add another?(y/n):";
        char choice;
        cin>>choice; …
Run Code Online (Sandbox Code Playgroud)

c++ memory heap-memory heap-corruption

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

多图的时间复杂性问题

我创建了一个程序来查找数字列表的中位数.数字列表是动态的,可以删除和插入数字(可以输入重复的数字),在此期间,重新评估和打印新的中位数.

我使用multimap创建了这个程序,因为

1)它已经被分类的好处,
2)容易插入,删除,搜索(因为多图实现二进制搜索)
3)允许重复的条目.

条目数+删除数(表示为N)的约束是:0 <N <= 100,000.

我写的程序工作并打印出正确的中位数,但速度不够快.我知道unsorted_multimap比multimap快,但是unsorted_multimap的问题是我必须对它进行排序.我必须对它进行排序,因为找到你需要有一个排序列表的中位数.所以我的问题是,使用unsorted_multimap然后快速排序条目是否可行,或者这只是荒谬的?使用矢量,快速导航矢量和使用二分搜索会更快吗?或者也许我忘记了一些我甚至都没想过的神话般的解决方案.

虽然我不是C++的新手,但我会承认,我的时间复杂性技巧在某种程度上是医学上的.


我越是看自己的问题,我越开始认为只使用带快速排序和二进制搜索的向量会更好,因为数据结构基本上已经实现了向量.

c++ big-o binary-search multimap time-complexity

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

错误C3861:'strcpy':找不到标识符

为什么我收到此错误?

*编辑我在底部发布了我的解决方案.事实证明,我无法在程序的特定部分使用strcpy().

c++ visual-studio-2010 visual-c++

-1
推荐指数
1
解决办法
4146
查看次数