小编Kri*_*Oza的帖子

什么是"线程安全"代码?

这是否意味着两个线程不能同时更改基础数据?或者它是否意味着当多个线程运行时,给定的代码段将以可预测的结果运行?

language-agnostic concurrency multithreading programming-languages

339
推荐指数
15
解决办法
16万
查看次数

如何在map和unordered_map之间进行选择?

假设我想用字符串作为键来映射数据.我应该选择哪个容器,map或者unordered_mapunordered_map占用更多内存所以让我们假设内存不是问题,关注的是速度.

unordered_map通常应该给出O(1)的平均复杂度与O(n)的最坏情况.在什么情况下它会到达O(n)?什么时候map获得更多的时间效率unordered_map?当n很小时会发生吗?

假设我将STL unordered_map与默认的haser Vs一起使用.地图.字符串是关键.

如果我要迭代元素而不是每次访问单个元素,我应该更喜欢map吗?

c++ dictionary stl unordered-map data-structures

75
推荐指数
4
解决办法
5万
查看次数

stdexcept与c ++中的异常标题

从cplusplus.com参考文献中可以看出,对于C++ 98或更高版本的C++中的异常处理<exception>来说<stdexcept>,这似乎<exception>已经足够了.

为什么C++有两个头文件用于异常处理?这对我的发展有何影响?我应该使用哪个标头?

c++ exception-handling c++11

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

使用wireshark将RTP有效负载解码为H264

我正在从Windows上的vlc将RTSP视频流式传输到ipad应用程序.我在wireshark中捕获数据包.我可以在wireshark中看到RTP数据包,也可以看到有效负载类型,时间戳,序列号等RTP头字段.我的问题是,是否可以将RTP有效负载解码为H264 NAL单元.目前我只能看到有效负载中的字节数.

rtp rtsp wireshark h.264

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

什么数据类型可以存储 100 的阶乘

为什么下面的程序将 100 作为输入的阶乘打印为 0。如果 getFact 函数返回类型为 ,则可以计算相同的阶乘long double,但为了获得数字总和,我无法在 long double 上应用mod (%)运算符。

注意:unsigned long long和的大小long double在我的机器上相同。请建议输入为 100 什么类型的数据会给出正确的输出。

#include <iostream>
#include <stdlib.h>

unsigned long long int getFactorial(int);
unsigned long long int getSum(unsigned long long int);

int main()
{
    unsigned long long int fact = 1;
    unsigned long long int digsum  = 0;
    std::cout << "Enter a number to find fact := ";
    int num;
    std::cin >> num;
    fact = getFactorial(num);
    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ type-conversion factorial

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

C++ 中 std::fstream::X 和 std::ios::X 的区别

我是 C++ 的新手。我有一个简单的问题要问您std::fstream::X and std::ios::XC++ 中的打开文件模式有什么区别?

哪里 x可以in, out, ate, trunk, ate

这是更多示例:

fs.open(filename.c_str(), std::fstream::in | std::fstream::out | std::fstream::app);
Run Code Online (Sandbox Code Playgroud)

对比

fs.open(filename.c_str(), std::ios::in | std::ios::out | std::ios::app);
Run Code Online (Sandbox Code Playgroud)

这两者之间有什么区别?

请不要以复杂的方式回答,因为我是 C++ 初学者。

c++ fstream

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

在同一主机上打开不同文件夹时,VS Code 重复要求输入密码

Ubuntu我已使用 Windows连接到远程主机VS Code并使用它进行远程开发。我经常在 VS Code 中打开不同的代码存储库,但每次我都必须打开不同的文件夹,尽管已建立连接,VS Code 仍会要求输入密码。

似乎一旦我们对远程主机进行了评论,那么从同一主机连续打开不同的文件夹就不会提示输入密码。

我是否缺少或应该执行任何设置来解决此问题或保存密码。

visual-studio-code vscode-remote

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

为什么在非成员函数上不允许使用const这样的修饰符

我无法理解不允许改性剂,如原因constvolatile对非成员函数.

以下是我厌倦的示例代码

class A
{
private:
    int var;
public:
    int func();
};

int A::func()
{
    // Some calculation on using var
    int temp = var + 10;
    return temp;
}

void func2( const A& tempObj ) const;

void func2( const A& tempObj ) 
{
    std::cout << "temp obj called : " << tempObj.func() << std::endl;
}

int main()
{
    A aobj;
    aobj.func();
    func2( aobj );
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这将引发编译器错误error C2270: 'func2' : modifiers not allowed …

c++ const volatile

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

句子"C++编译器使用二进制对象布局"的含义和用法是什么

在浏览这个C++ FAQ https://isocpp.org/wiki/faq/mixing-c-and-cpp#cpp-objs-passed-to-c时,我遇到了这个声明

大多数C++编译器使用二进制对象布局,导致此转换发生在多重继承和/或虚拟继承之后.

我无法理解它的含义和应用.根据C++ FAQ,这个对象布局机制可以帮助C++编译器进行下面提到的检查

在C++中,很容易检查Derived*被调用的dp是否指向与被称为bp的Base*指向的同一对象:只需说if(dp == bp).... C++编译器自动将两个指针都转换为相同类型,在本例中为Base*,然后比较它们.根据C++编译器的实现细节,此转换有时会更改指针值的位.

任何人都可以帮助理解任何流行的C++编译器的二进制对象布局,以及可能的更改以及指针值的位变化的相应机制.以及它如何帮助比较Base/Derived类的指针.

编辑:请解释为什么以下也是一个有效的声明.

注意:将两者都转换为void*时必须特别小心,因为该转换不允许C或C++编译器进行正确的指针调整!即使(b == d)为真,比较(x == y)也可能为假:

c++ memory layout pointers object

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

RuntimeError:Python中超出了最大递归深度

#Recursive BinaryChop
def recursiveBinaryChop( value, elementList, min, max ):
    if len( elementList ) == 0:
        return -1
    if max <= min:
        if ( max == min and elementList[min] == value ):
            return min
        else:
            return -1
    else:
        midPointOfList = ( min + max ) / 2

        if elementList[midPointOfList] > value:
            max = --midPointOfList
            return recursiveBinaryChop( value, elementList, min, max )
        elif elementList[midPointOfList] < value:
            min = ++midPointOfList
            return recursiveBinaryChop( value, elementList, min, max )
        else:
            return midPointOfList

#Recursive BinaryChop Test …
Run Code Online (Sandbox Code Playgroud)

python recursion binary-search

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