小编cbi*_*der的帖子

为什么std :: queue :: pop没有返回值.?

我浏览了这个页面,但我无法得到同样的理由.在那里提到了

"它根本不返回任何值并要求客户端使用front()来检查队列前面的值更为明智"

但是检查front()中的元素也需要将该元素复制到左值.例如,在此代码段中

std::queue<int> myqueue;
int myint;
int result;
std::cin >> myint;
myqueue.push (myint);
Run Code Online (Sandbox Code Playgroud)

/*这里临时将在RHS上创建,它将被分配给结果,如果通过引用返回,则在弹出操作后结果将变为无效*/

result = myqueue.front();  //result.
std::cout << ' ' << result;
myqueue.pop();
Run Code Online (Sandbox Code Playgroud)

在第五行cout对象首先创建myqueue.front()的副本然后将其分配给结果.那么,最重要的是,pop功能可以做同样的事情.

c++ stl

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

为什么std :: set是一个关联容器

我已经阅读了各种文本.我唯一得到的是set是一个关联容器,由有序和唯一键组成.现在,如果没有要使用键映射的值,那么集合中的关联在哪里.

c++ stl

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

svn错误 - 必须与祖先有关

当我在两个共享相同目录结构的目录中合并文件时,我收到此错误

/plugins/trunk/embedded-_S/Plugin/src/UPnP
/plugins/trunk/embedded-_M/Plugin/src/UPnP
Run Code Online (Sandbox Code Playgroud)

上述路径结构下的文件在计数和名称上是相同的.当我从本地PC上的目录*/plugins/trunk /运行命令时:

svn merge https://svn.xxx.com/svn/plugins/trunk/embedded-_S/Plugin/src/UPnP/embedTags.c  embedded-_M/Plugin/src/UPnP/embedTags.c
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

E195016:" https://svn.xxx.com/svn/plugins/trunk/embedded-_Smart/Plugin/src/UPnP/embedTags.c@6946 "必须祖先有关" https://svn.xxx.com /svn/plugins/trunk/embedded-_M/Plugin/src/UPnP/embedTags.c@6945 "/UPnP/embedTags.c

我尝试使用--ignore-ancestry选项然后又出现了另一个错误:

E200004:忽略mergeinfo时无法自动合并

还要提一下,目录结构是由另一个离开组织的人创建的,我不确定他是否使用svn copy在repo中创建新目录.任何帮助将不胜感激.

svn version-control merge

5
推荐指数
0
解决办法
1078
查看次数

使用mingw交叉编译x86_64-w64的cairo

我有一个应用程序,再次链接SDL和cairo,我想在ubuntu上为win64交叉编译.我使用这篇优秀的博客文章来获取SDL交叉编译,并且我使用了另一篇博文来交叉编译zlib,libpng和libpixman.

但是,我现在在尝试编译我的最小测试程序时遇到链接器错误:

$ make cairotest.exe 
x86_64-w64-mingw32-gcc -o cairotest.o -c cairotest.c -I/usr/x86_64-w64-mingw32/include/SDL2 -Dmain=SDL_main -I/home/jshaw/x86_64-w64/include/cairo -I/home/jshaw/x86_64-w64/include/pixman-1 -I/home/jshaw/x86_64-w64/include/libpng16 
x86_64-w64-mingw32-gcc -o cairotest.exe cairotest.o -L/usr/x86_64-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows -L/home/jshaw/x86_64-w64/lib -lcairo 
collect2: error: ld returned 1 exit status
Makefile:13: recipe for target 'cairotest.exe' failed
Run Code Online (Sandbox Code Playgroud)

我应该提一下,如果我只使用没有任何开放代码的SDL2,这个测试程序可以正常工作,所以我怀疑我交叉编译的cairo库有问题.我该如何诊断问题呢?

linker cross-compiling cairo mingw-w64

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

类是如何在 C++ 内部实现的?

我试着用谷歌搜索它,但没有找到任何结果。该实现是否类似于 C 中使用函数指针和数据结构的类 hack?还是以另一种形式实现?

c++ class

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

标签 统计

c++ ×3

stl ×2

cairo ×1

class ×1

cross-compiling ×1

linker ×1

merge ×1

mingw-w64 ×1

svn ×1

version-control ×1