小编Lih*_*ihO的帖子

malloc有什么优势?

为某些数据分配内存有什么好处.相反,我们可以使用它们的数组.

喜欢

 int *lis;
 lis = (int*) malloc ( sizeof( int ) * n );

 /* Initialize LIS values for all indexes */
 for ( i = 0; i < n; i++ )
 lis[i] = 1;
Run Code Online (Sandbox Code Playgroud)

我们可以使用普通的数组.

好吧,我不明白malloc是如何工作的,实际上是做什么的.所以解释它们对我来说会更有益.

假设我们sizeof(int) * nn用上面的代码替换然后尝试存储整数值,我可能面临哪些问题?有没有办法直接从内存分配空间打印存储在变量中的值,例如这里是lis

c++ arrays malloc dynamic-allocation variable-length-array

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

如何在C++中匹配两个数组的内容

我有两个单独的单词数组,例如:

array1 = word1, word2, word3
array2 = word4, word5, word6
Run Code Online (Sandbox Code Playgroud)

我试图根据用户输入(这将是2个单词)匹配两个数组.例如,您输入"word1 word6",程序会给你x.你输入"word3 word4",程序给你y.不需要/不应该在每个数组内匹配(因此输入"word1 word3"不应该提供除错误之外的任何内容).

现在,我正在考虑使用string::find在输入字符串中查找每个数组的内容.然而,在那之后,我仍然坚持如何获取这些结果(如果有的话)并将它们相互匹配.

例如,我会input.find(contents of array1),如果找到了某些东西,那就拿下它array1[x],看看array2[x]通过同一输入中的单独行找到的组合是否与第三个可能组合列表相匹配.如果确实如此,我会根据它的组合拆分响应.

我知道如果我只有一个可能的匹配列表会更容易,并在输入字符串中找到.但我想保持两组单词分开,因为代码会更灵活(我会以这种方式学习更多).

希望有人可以给我一些关于如何进行的提示?

c++ arrays string containers set

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

在函数中返回向量后清除内存

我有一个处理和存储大量数据的函数,然后它将结果作为类的向量返回.存储在此函数中的数据量非常大,我希望在完成其工作后清除该函数的存储内存.是否有必要这样做(功能是否自动清除内存)还是应该通过某些功能清除内存?

更新:

vector<customers> process(char* const *filename, vector<int> ID)
{
    vector<customers> list_of_customers;
    (perform some actions)
    return list_of_customers;
}
Run Code Online (Sandbox Code Playgroud)

c++ memory-management copy function vector

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

函数签名中的'class'关键字 - 它是标准的C++吗?

我正在研究给我的代码,我看到:

AFPSGameMode::AFPSGameMode(const class FPostConstructInitializeProperties& PCIP)
    : Super(PCIP) {   }
Run Code Online (Sandbox Code Playgroud)

我对class关键字的使用特别好奇.这是标准的C++,如果是这样,它意味着什么?

谢谢.

c++ parameters syntax

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

只读文本文件中的给定行?

有没有办法在C++中获取一个给定大小的随机数,然后从文本文件中读取该行?无需逐步完成所有线路?我有这个只是逐行打印:

#include <cstdio>
#include<iostream>
#include<fstream>

using namespace std;
int main(int argc, char* argv[]){
    ifstream myReadFile;
    myReadFile.open("words.txt");
    char output[100];
    if (myReadFile.is_open()) {
        while (!myReadFile.eof()) {
            printf("\n");
            myReadFile >> output;
            cout<<output;
        }
    }
    myReadFile.close();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ string file-io

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

使用动态分配的内存(指针)

当我正在尝试学习C++时,我正在玩指针和动态内存,并且在编译时我不断收到此错误.

error C2678: binary '>>' : no operator found which takes a left-hand operand of type 'std::istream' (or there is no acceptable conversion)
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

int * ageP;    
ageP = new (nothrow) int;

if (ageP == 0)
{
    cout << "Error: memory could not be allocated";
}
else
{
    cout<<"What is your age?"<<endl;
    cin>> ageP;                       <--this is the error line
    youDoneIt(ageP);                                            
    delete ageP;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?在此先感谢您的帮助.

c++ io pointers dynamic-memory-allocation visual-c++

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

在非成员函数中访问MFC对话框的成员变量

我正在使用MFC对话框,我不知道如何从非成员函数访问对象的成员变量(编辑控件,按钮,复选框等).

由于对象是在创建任何的.cpp,所有的对象事件在whateverDlg.cpp处理,而后者#include的前者,我无法用常规手段获得DLG的成员.

澄清示例:

void BlahDlg::OnBnClickedblah()
{
    //...
    CString text = L"blahblahblah";
    m_bEditControl.SetWindowTextW(text.GetBuffer()); //works fine
    //...
}

void nonMember()
{
    //...
    CString text = L"blahblahblah";
    m_bEditControl.SetWindowTextW(text.GetBuffer()); //m_bEditControl is unknown
    //...
}
Run Code Online (Sandbox Code Playgroud)

换句话说:我应该怎么做才能m_bEditControl从非成员函数访问(或任何其他对话框的成员)?

c++ mfc scope object visual-c++

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

静态类数据成员的范围

如果我有课:

Object.h

class Object
{
public:
    static int number;
};
Run Code Online (Sandbox Code Playgroud)

Object.cpp

int Object::number = 5;
Run Code Online (Sandbox Code Playgroud)

Object::number保证的范围是否超出了Object创建的任何实例的范围?即使它在另一个源文件中全局声明?

c++ static class global-variables

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

重新排列等式

我的C代码中有以下等式

k * dl * (1.0 + pHold / centre
       + (pHold * pHold) / (2.0 * centre * centre)
       - square / (2.0 * centre))
Run Code Online (Sandbox Code Playgroud)

我知道浮点除法比乘法要贵得多,而且我已经和它搏斗了一段时间.有没有办法重新排列这个来划分一个师?

谢谢

c math floating-point optimization performance

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

void*(*例程)(void*)在C中的含义是什么?

我正在学习C,我来到这个表达式:

void *(*routine)(void *)
Run Code Online (Sandbox Code Playgroud)

我觉得很困惑.也许它是一个指针......指针......指针?

如果我想把这个东西传递给一个函数,我们将如何操纵它?我试图将这个例程构造作为一个参数传递给一个需要void(*)(void)... 的函数但是我真的很遗憾.

c syntax pointers function-pointers argument-passing

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