小编lit*_*adv的帖子

STL具有3路比较谓词

是否有与像STL功能的任何文库std::sort(),std::binary_search(),std::lower_bound(),std::upper_bound()接受(对大其返回-1上更小,0上相等,1)3路比较谓词而不是更少谓词(上少真,假上等于或大)?

当然,较少的谓词可以很容易地从现有的3向谓词(例如[](A a, B b) { return compare3(a,b)<0; })中得出,但这会导致对谓词的额外调用次数.

c++ sorting stl binary-search lower-bound

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

动态内存分配代码说明

作为一名初学C/C++程序员,我不得不花费几个小时,试图破译下面的代码:有人可以一行一步地走我(通过以下代码进行动态内存分配).

 char **alloc_2d_char(const int rows, const int cols) 
 {
   char *data = (char *)malloc(rows*cols*sizeof(char));
   char **array= (char **)malloc(rows*sizeof(char*));

   for (int i=0; i<rows; i++)
      array[i] = &(data[cols*i]);

   return array;
 }
Run Code Online (Sandbox Code Playgroud)

指针的指针是从指针到数组分开解释的.我已经能够从各种来源获得部分信息,但没有一个能够内聚地缝合线条.

c arrays pointers memory-management

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

用于实时编程的低级C/C++网络概念?

我对实时编程很感兴趣,虽然我觉得我对算法和数据结构知之甚少,但我觉得我不太了解如何尽可能快地将数据导入计算机以便处理.

你们中的任何人都会非常友好地指出我可以google的主题,以便帮助我吗?我的大部分C书都没有真正触及网络,而我的C++书籍将网络视为一个基本话题.例如,我在两台计算机之间创建UDP连接时会遇到很多问题,但是在哪些方面可以使连接最有效?

提前致谢

c c++ networking real-time

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

c ++代码中的错误"预期的构造函数,析构函数或类型转换'('token"和"没有匹配的函数用于调用..."

真的试图解决错误,仔细检查一切.请帮忙.c ++的新手,请善待.

头文件(.h)

#ifndef GUARD_Optimized_quick_sort_h
#define GUARD_Optimized_quick_sort_h

#include <vector>
#include <list>
#include <iterator>

using namespace std;

template <class T> class optimized_quick_sort 
{
    public:
        optimized_quick_sort(vector<T> array) 
        {
            this->array = array;
        }

        optimized_quick_sort(list<T> array)
        {
            vector<T> temp(array.begin(), array.end());
            this->array = temp;
        }

        vector<T> sort()
        {
            typename vector<T>::iterator begin = array.begin();
            typename vector<T>::iterator end = array.end();

            quick_sort(begin, end);
            return array;
        }

    private:

        vector<T> array;


        int quick_sort( vector<T>::iterator , vector<T>::iterator);
        int insertion_sort(vector<T>::iterator, vector<T>::iterator);
        vector<T>::size_type devide(vector<T>::iterator, vector<T>::iterator );
};

#endif
Run Code Online (Sandbox Code Playgroud)

.cpp文件

#include "optimized_quick_sort.h"

#include <iostream> …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors

4
推荐指数
2
解决办法
2350
查看次数

如何在允许动态实例的同时防止简单C++类对象的静态实例

我知道如何防止在C++中动态实例化类.(定义我自己的'new'运算符)但是有一种简单的方法来阻止静态实例化以便强制动态实例吗?也就是说,我该怎么做...(这不是一个可派生的抽象基类.只是一个简单的类)

class B {

};

B b;  // how do I prevent this without using friends or some derived class trick

B* b;
b = new B;  // still want to be able to do this.
Run Code Online (Sandbox Code Playgroud)

c++

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

忽略C函数中的参数

我正在将一个C库集成到iOS的Objective-C应用程序中.我不是很精通C ...我知道这很危险.

C函数声明是这样的:

extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file,
                         unz_file_info *pfile_info,
                         char *szFileName,
                         uLong fileNameBufferSize,
                         void *extraField,
                         uLong extraFieldBufferSize,
                         char *szComment,
                         uLong commentBufferSize));
Run Code Online (Sandbox Code Playgroud)

我真的只对此感兴趣szFileName.我知道我可以忽略void*char*通过NULL.我可以通过一些 - NULL相当于uLongparams吗?我收到一个关于转换为没有强制转换的指针的编译器警告.

这是我调用此函数的循环,以防有人想对此进行评论.我做了malloc/ free正确吗?我不习惯低级C的东西.我知道有人抱怨Objective-C引用计数,但相比之下它非常豪华:)

unz_file_info pfile_info;
char *szFileName = malloc(1024);
uLong fileNameBufferSize;
uLong commentBufferSize;
uLong extraFieldBufferSize;

do {
    int ret = unzGetCurrentFileInfo(zipFile, &pfile_info, szFileName, fileNameBufferSize, NULL, extraFieldBufferSize, NULL, commentBufferSize);
    NSLog(@"get info ret %i filename size %lu, filename %s", ret, pfile_info.size_filename, szFileName);
    // …
Run Code Online (Sandbox Code Playgroud)

c

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