小编cal*_*pto的帖子

增加堆栈不工作

如何使用Bloodshed Dev C++或Code :: Block正确增加程序可用的堆栈?我运行简单的泡泡和快速排序工作,但当我更改Code :: Block中的堆栈(发现如何在这里)它使我的程序崩溃更快,尽管使用远远超过建议的空间.最初,程序在排序64K随机整数时崩溃(使用该rand()函数).现在,它崩溃在32K.我得到错误:Process returned -1073741571 (0xC00000FD)

假设我做得对,程序实际上运行得更快,而不会改变堆栈. gcc -Wl,--stack,1099511627776

我无法弄清楚如何在Dev C++中改变它

我该怎么办?有没有办法在代码本身内更改堆栈?这是我用于泡泡和快速排序的代码.每个都有两个:一个是矢量,另一个是数组.我认为泡沫排序.应该是正确的.快速排序,我不太确定.对不起,如果它有点凌乱

vector <int> v_bubble(vector <int> array){
    // Vector Bubble Sort
    if (array.size() < 2){
        return array;
    }
    int s = 1;
    while (s){
        s = 0;
        for (unsigned int x = 0; x < (array.size() - 1); x++){
            if (array[x] > array[x + 1]){
                int t = array[x];
                array[x] = array[x + 1];
                array[x + 1] = t;
                s = …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction sorting stack bubble-sort

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

map &lt;string,vector &lt;pair &lt;int,int&gt;&gt;&gt;推回对吗?

我有这个map<string, vector <pair<int, int> > >变量,并且正在推回一个值,但是code :: blocks告诉我该对没有名为push_back的成员函数。我应该怎么做才能使它推回而不是pair<>.push_back()

这基本上是我在做什么:

map<string, vector <pair<int, int> > > T;
for(int x = 0; x < data.size(); x++)
     T[data[x].str].push_back(data[x].PAIR)
Run Code Online (Sandbox Code Playgroud)

错误是:

error: no matching function for call to 'std::vector<std::pair<int, int>,
  std::allocator<std::pair<int, int> > >::push_back(std::map<int, int, 
    std::less<int>, std::allocator<std::pair<const int, int> > >&)'
Run Code Online (Sandbox Code Playgroud)

c++ vector stdmap push-back std-pair

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

如何将对象标识符转换为十六进制字符串

是否有任何[非编程语言特定]方法来获取对象标识符的十六进制版本?

例如:

OID 1.2.840.10040.4.1:dsa

hex string = 2a 86 48 ce 38 04 01

它们似乎没有一个易于访问的列表.我正在寻找X509证书中使用的OID

x509certificate x509

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

如何让std :: list <std :: string> :: iterator输出错误值?

我正在搜索值列表,并希望在找不到要搜索的值时让它返回某种"默认"错误值.我不是故意的std::cerr.我的意思是我可以在我的程序中使用的值,如bool.但是,如果它确实找到了字符串,我需要它在字符串中的指针值.我该怎么做呢?

c++ pointers iterator

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

如何将终止NUL字符\ x00变为字符串?

我如何得到一个带有空字符\ x00的字符串,因为\ x00也是终止字符?

我确实需要它来完成我的部分程序.

我需要的字符串是"\ x00\x00\x00\x00".它有一些特殊的语法吗?它是什么?

c++ string escaping

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

操作员的表现| vs运营商+

|之间有什么重大区别吗?和+会影响代码的长期性能?或者都是O(1)?我正在使用的代码是这样的:

uint64_t dostuff(uint64_t a,uint64_t b){
        // the max values of the inputs are 2^32 - 1

        // lots of stuff involving boolean operators
        // that have no way of being substituted by 
        // arithmetic operators

        return (a << 32) + b;
        //or
        return (a << 32) | b;
}
Run Code Online (Sandbox Code Playgroud)

代码将被多次使用,所以我想尽可能加快速度.

c++ math boolean-operations

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

将位转换为值

计算机如何知道(int x,y)x << y意味着移位y位?我不是指转变部分.我的意思是那y部分.计算机是否将x移位1并从y中减去1直到y == 0?如果不是,计算机如何计算y的值?

如果说y = 10,那么二进制表示是0b1010.计算机不能简单地拿走1010它并使用它,可以吗?

我试图为大于8的位大小.由于值不是简单地存储为标准整数的数组,容器不表示值,因此重载运算符<<并且>>有点困难.但是,从100位数字倒计数到0有点效率低,所以我试图找到一种方法让计算机更快地理解位数.

c++ math bit-shift mathematical-optimization bitarray

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

vector <bool>访问

我使用gprof和报告来描述我的代码,大多数,如果不是所有前20个左右的东西都是关于向量的

Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 14.71      0.05     0.05  3870399     0.00     0.00  std::vector<bool, std::allocator<bool> >::size() const
 11.76      0.09     0.04 10552897     0.00     0.00  std::_Bit_reference::_Bit_reference(unsigned long*, unsigned long)
 11.76      0.13     0.04  7890323     0.00     0.00  std::_Bit_const_iterator::_Bit_const_iterator(std::_Bit_iterator const&)
  5.88      0.15     0.02 10089215     0.00     0.00  std::_Bit_iterator::operator*() const
  5.88      0.17     0.02  6083600     0.00     0.00  std::vector<bool, std::allocator<bool> >::operator[](unsigned int)
  5.88      0.19     0.02  3912611     0.00     0.00  std::vector<bool, std::allocator<bool> >::end() const
  5.88      0.21     0.02 …
Run Code Online (Sandbox Code Playgroud)

c++ profiling boolean vector gprof

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

比较prolog匿名变量

我在prolog中有一系列包含匿名变量的事实_.

fact(a, _).
fact(b, _).
fact(c, _).
Run Code Online (Sandbox Code Playgroud)

我有一些规则可以列出这些事实:

f([H | T]) :- H == fact(a, _),
              % stuff %
              .
Run Code Online (Sandbox Code Playgroud)

但这不起作用.该规则不会超过第一个条款H == fact(a, _).我究竟做错了什么?是否有不同的运营商平等?

prolog

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

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