相关疑难解决方法(0)

vector <bool>的替代方案

正如(希望)我们都知道的那样,vector<bool>完全被打破,不能被视为交流阵列.获得此功能的最佳方法是什么?到目前为止,我所想到的想法是:

  • 使用vector<char>替代,或
  • 使用包装类并拥有 vector<bool_wrapper>

你们怎么处理这个问题?我需要c_array()功能.

作为一个附带问题,如果我不需要c_array()方法,如果我需要随机访问,解决此问题的最佳方法是什么?我应该使用双端队列还是别的什么?

编辑:

  • 我确实需要动态调整大小.
  • 对于那些不知道的人来说,c_array()是专门的,所以每个bool需要1位.因此,您无法将其转换为C风格的数组.
  • 我猜"包装"有点用词不当.我在想这样的事情:

当然,由于可能的对齐问题,我必须读入my_bool :(

struct my_bool
{
    bool the_bool;
};
vector<my_bool> haha_i_tricked_you;
Run Code Online (Sandbox Code Playgroud)

c++ stl boolean vector

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

堆栈溢出c ++

所以我,试图解决一项任务.一个已经有代码,但系统输出,"堆栈溢出"我是c +中的新手,我的英语不好所以我很抱歉误解=)

   #include <iostream> 

using namespace std;

int main (){
    int n;
    int x;
    int k = 0; // ??????? ??? ???????? ???????
    int a [200000];
 scanf("%d\n",&n);   

 for (int i = 0; i< n; ++i){
     std::cin >> x;
     if (x > 0){
             k++;
             a[k] = x;
           }else if(x == 0){
                 for (int q = 1; q <= k; ++q){ // ??????????? 
                          a[k+q] = a[q];
                     }
                 k *= 2;
                 }else{
                          printf("%d %d\n",a[k],k);
                          k--;
                        }
     }
     system("pause");


}
Run Code Online (Sandbox Code Playgroud)

看起来像算法正常工作,但只有问题是堆栈.非常感谢!

c++ stack-overflow stack

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

标签 统计

c++ ×2

boolean ×1

stack ×1

stack-overflow ×1

stl ×1

vector ×1