小编Arm*_*yan的帖子

输入迭代器+输出迭代器+ X =前向迭代器

我想解决标题中的等式并找到X.据我所知,输入或输出迭代器与前向迭代器不同,一旦它的副本被提前就会失效.对于满足输入迭代器概念和输出迭代器概念以满足前向迭代器概念的类型T,是否还有其他要求?

在任何情况下,你能提供一个迭代器的真实例子,它既是输入也是输出,但不是前进的?谢谢

c++ iterator stl

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

怀疑如何锁定助推互斥锁

boost::recursive_mutex m;
m.lock();
Run Code Online (Sandbox Code Playgroud)

boost::lock_guard<boost::recursive_mutex> lock( mutex_ );
Run Code Online (Sandbox Code Playgroud)

使用第一张表格是否有优势?第二种形式是否仅提供RAII机智,还是有其他优势?

c++ boost mutex

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

"{}"表示数组或

我正在阅读"iphone编程 - 大书呆子牧场指南",并且有一个这样的片段:

static NSString *randomNounList[3] =
{ 
    @"Bear", 
    @"Spork",
    @"Mac"
};
Run Code Online (Sandbox Code Playgroud)

所以randomNounList现在是一个数组?但它被宣布为NSString.括号{}在这里意味着什么?

objective-c

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

C中的表达评估

为什么打印下面的C代码? 12 12 12

int main(int argc, char const *argv[]) {
  int a = 2, *f1, *f2;
  f1 = f2 = &a;
  *f2 += *f2 += a += 2.5;
  printf("%i %i %i\n", a, *f1, *f2);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c expression-evaluation undefined-behavior

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

编译器错误:"expected specifier-qualifier-list"

int main()
{
    typedef struct a
    {
        static int w;
        char *p;
    } a;
}
Run Code Online (Sandbox Code Playgroud)

编译它给你 error:expected specifier-qualifier-list before 'static' 可以告诉我这个错误意味着什么以及如何删除它?

c++

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

退出或结束其他可执行文件

我有这个代码来运行exe:

String cPath = "C:\\GCOS\\HHT\\EXE\\" + frmSchemas.schema;
string cParams = HHTNUMBER+" "+ Login.user + "/" + Login.pass + "//" +Login.db + "//" + frmSchemas.schema ;
string filename = Path.Combine(cPath,"HHTCtrlp.exe"); 
Process.Start(filename, cParams); 
Run Code Online (Sandbox Code Playgroud)

现在我如何结束上面的程序?

c#

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

为什么allegro会自动处理最小化按钮,但不能关闭按钮?

以下是来自Allegro5教程的示例:(要查看原始示例,请点击链接,我已将其简化为插图目的.

#include <allegro5/allegro.h>

int main(int argc, char **argv)
{
   ALLEGRO_DISPLAY *display = NULL;
   ALLEGRO_EVENT_QUEUE *event_queue = NULL;
   al_init()
   display = al_create_display(640, 480);
   event_queue = al_create_event_queue();
   al_register_event_source(event_queue, al_get_display_event_source(display));
   al_clear_to_color(al_map_rgb(0,0,0));
   al_flip_display();
   while(1)
   {
      ALLEGRO_EVENT ev;
      ALLEGRO_TIMEOUT timeout;
      al_init_timeout(&timeout, 0.06);
      bool get_event = al_wait_for_event_until(event_queue, &ev, &timeout);
      //-->// if(get_event && ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) {
      //-->//   break;
      //-->// }

      al_clear_to_color(al_map_rgb(0,0,0));
      al_flip_display();
   }

   al_destroy_display(display);
   al_destroy_event_queue(event_queue);

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

如果我不手动检查ALLEGRO_EVENT_DISPLAY_CLOSE,那么我无法关闭窗口或终止程序(不通过任务管理器终止进程).我理解这一点.但在这种情况下,我不明白最小化按钮如何工作,没有我手动处理它.有人可以解释一下吗?

c c++ windows allegro allegro5

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

vec.erase(vec.end()); 法律?

顺序容器可以擦除吗?

在标准中它说:

a.erase(q) 
Requires: For vector and deque, T shall be
MoveAssignable.
Effects: Erases the element pointed to by q
Run Code Online (Sandbox Code Playgroud)

目前尚不清楚a.erase(a.end())顺序容器是否为no-op或UB.想法?

c++ stl erase

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

C中的变量声明

我试图声明一个整数变量m和一个指向整数数据类型n的指针.

int m,*n;
*n=2;
printf("%d",*n);
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常.但

int *n,m;
*n=2;
printf("%d",*n);
Run Code Online (Sandbox Code Playgroud)

给出了分段错误.

请解释原因?

c memory-management segmentation-fault variable-declaration

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

关于rint使用的问题

for(i = 0; i < 181; i++)
    {
       unsigned int index = rint(i/db);
        assert(index >= 0 && index < data.ranges_count);
      this->laser_ranges[i*2][0] = data.ranges[index] * 1e3;
    }
Run Code Online (Sandbox Code Playgroud)

是什么意思 rint(i/db)?我不确定如何使用rint ...

c++

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