小编Dar*_*rer的帖子

python split()vs rsplit()性能?

我在python中有一个字符串.我想将它拆分maxsplit = 1为非常靠近字符串末尾的分隔符.

例如

a = "abcdefghijklmnopqrstuvwxyz,1".
Run Code Online (Sandbox Code Playgroud)

a.split(",", 1)在性能方面会更好a.rsplit(",",1)吗?

python string split

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

跨平台(C++/Android)无损/低噪声视频压缩/解压缩库

我需要压缩视频流,通过网络将其从 C++ 库传输到 Java 平台(Android)并在那里解压缩。要求如下:

  • 该库必须适用于 Android 平台和 C++(或者,2 个使用通用格式的独立库)
  • 压缩必须是无损或有损且伪影最少
  • 库必须是免费/开源的

该任务的具体情况是视频流将是飞机 MFD 类型,因此会有大量像素在多个帧中保持相同。这对压缩应该有很大帮助。

上述问题有什么“简单的方法”吗?

c++ android cross-platform lossless-compression video-streaming

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

Qt拖放:启用复制时无法移动(Ubuntu Gnome)

我正在实现一个视图和一个模型,我希望在内部(通过拖动)支持两个移动项目,并复制项目(通过在拖动时按Ctrl键).我按照说明做了我需要做的一切.我已经设置了mime函数,我已经实现了removeRows()和flags().问题是当我拖动时,它默认为复制操作(我得到带有加号的箭头光标,它确实通过在模型中创建一个新项目来复制项目).

我能看到的唯一区别是:如果我只在supportedDropActions()中返回Qt :: MoveAction,它只会移动.如果我返回(Qt :: CopyAction | Qt :: MoveAction),它只会复制.

有任何想法吗?我希望它像Nautilus(Gnome)或Windows文件资源管理器中的文件一样工作:拖动移动图标,按住Ctrl键并拖动它们.

c++ ubuntu qt drag-and-drop gnome

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

为什么在分配/解除分配多个小对象后内存不可重用?

在调查我们的一个项目中的内存链接时,我遇到了一个奇怪的问题。不知何故,当父容器超出范围并且除小对象外无法使用时,为对象分配的内存(shared_ptr 到对象的向量,见下文)并未完全回收。

最小的例子:当程序启动时,我可以毫无问题地分配一个 1.5Gb 的连续块。在我稍微使用内存后(通过创建和销毁一些小对象),我不能再进行大块分配。

测试程序:

#include <iostream>
#include <memory>
#include <vector>
using namespace std;

class BigClass
{
private:
    double a[10000];
};

void TestMemory() {
    cout<< "Performing TestMemory"<<endl;
    vector<shared_ptr<BigClass>> list;
    for (int i = 0; i<10000; i++) {
        shared_ptr<BigClass> p(new BigClass());
        list.push_back(p);
    };
};

void TestBigBlock() {
    cout<< "Performing TestBigBlock"<<endl;
    char* bigBlock = new char [1024*1024*1536];
    delete[] bigBlock;
}

int main() {
    TestBigBlock();
    TestMemory();
    TestBigBlock();
}
Run Code Online (Sandbox Code Playgroud)

如果在循环中使用带有 new/delete 或 malloc/free 的普通指针而不是 shared_ptr,问题也会重复。

罪魁祸首似乎是在 TestMemory() 之后,应用程序的虚拟内存保持在 827125760(无论我调用多少次)。因此,没有足够大的免费 VM 区域来容纳 1.5 …

c++ memory-leaks stl vector crt

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

字符串向量,每个字符串长度和clen中的strlen

我有一个字符串向量.我需要找到每个字符串的长度.然后我假设当我将每个字符串转换为char数组并strlen在char数组上执行a 时,值应匹配.
更好的解释:这是代码

VerifyX509CertChain(
    const std::vector<std::string> & cert_chain,
    const std::string& hostname,
    const std::string& auth_type)
{

    const unsigned char* buf;
    const char* str;
    int vec_size = cert_chain.size();
    for (int i = 0; i < vec_size; i++)
    {

        str = cert_chain[i].c_str();
        MY_LOGV(StringPrintf("VerifyX509CertChain,string size  %s %s", str, cert_chain[i].c_str()).c_str());
        int string_size = cert_chain[i].size();
        int string_len = cert_chain[i].length();
        MY_LOGV(StringPrintf("VerifyX509CertChain,string size  %d %d", string_size, string_len).c_str());
        int string_size1 = strlen(str);
        int string_size2 = strlen(cert_chain[i].c_str());
        MY_LOGV(StringPrintf("VerifyX509CertChain,char size  %d %d", string_size1, string_size2).c_str());
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

V/ChromiumHTTPDataSourceSupport(1544):VerifyX509CertChain,字符串大小1326 1326 …

c++ string vector

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

Psexec不支持启用UAC

我有Server 2008 R2标准.我需要使用PC Win7中的psexec执行批处理文件.这个工作的唯一时间是我在我的服务器上禁用UAC.取消激活UAC是不可能的,我正在寻找启用UAC的解决方案.

错误消息:无法在remotehost上启动PSEXESVC服务:访问被拒绝.

PS:在我的psexec命令行中,我正在使用我的服务器的管理员用户来执行批处理文件.我的服务器上的UAC级别为3.

最好的问候,塔索

batch-file

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

我应该使用"this"关键字从内部成员函数访问类成员吗?

template <class T>
Vector<T>::Vector() : _size_(0){
    this->_capacity_ = 10;
    buffer = new T[this->_capacity_];
}
template <class T>
Vector<T>::Vector(unsigned int s) {
        this->_size_ = s;
        this->_capacity_ = _size_;
        this->buffer = new T[this->_capacity_];
        init(0, this->_size_);
}

template <class T>
Vector<T>::Vector(unsigned int s, const T &initial){
    this->_size_ = s;
    this->_capacity_ = s;   
    this->buffer = new T[this->_capacity_];
    init(0, s, initial);
}
Run Code Online (Sandbox Code Playgroud)

我的代码经常使用this关键字.在没有this关键字的情况下,在类中调用成员函数而不是直接访问它是一种良好的做法吗?如果我总是调用成员函数来访问成员变量,它会产生开销吗?C++实现做了什么?

c++ oop function

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