有没有办法检查迭代器(无论是来自向量,列表,双端队列......)是否(仍)可解除引用,即未被无效?
我一直在使用try- catch,但是有更直接的方法吗?
示例:(不起作用)
list<int> l;
for (i = 1; i<10; i++) {
l.push_back(i * 10);
}
itd = l.begin();
itd++;
if (something) {
l.erase(itd);
}
/* now, in other place.. check if itd points to somewhere meaningful */
if (itd != l.end())
{
// blablabla
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编译一个同时使用libjpeg和libpng的项目.我知道libpng需要zlib,所以我独立编译了所有三个并将它们(libjpeg.a,libpng.a和libz.a)放在一个名为的文件夹中linrel32.我执行的是:
g++ -Llinrel32/ program.cpp otherfile.cpp -o linrel32/executable -Izlib/ -Ilpng140/ -Ijpeg/ -lpthread -lX11 -O2 -DLINUX -s -lz -lpng -ljpeg
所以我包括了三个库.仍然,链接器抱怨:
linrel32//libpng.a(png.o): In function `png_calculate_crc':
png.c:(.text+0x97d): undefined reference to `crc32'
linrel32//libpng.a(png.o): In function `png_reset_crc':
png.c:(.text+0x9be): undefined reference to `crc32'
linrel32//libpng.a(png.o): In function `png_reset_zstream':
png.c:(.text+0x537): undefined reference to `inflateReset'
linrel32//libpng.a(pngread.o): In function `png_read_destroy':
pngread.c:(.text+0x6f4): undefined reference to `inflateEnd'
linrel32//libpng.a(pngread.o): In function `png_read_row':
pngread.c:(.text+0x1267): undefined reference to `inflate'
linrel32//libpng.a(pngread.o): In function `png_create_read_struct_2':
Run Code Online (Sandbox Code Playgroud)
(...你明白了:D)
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我知道缺少的函数来自zlib,我在那里添加了zlib.打开libz.a,似乎有一个很好的结构.重新编译它,一切看起来都很好.但它不是...... …
我是win32api编程的新手.我想知道如何在非gui程序中创建一个对话框(没有创建任何资源).
我已经看到了一些具有该CreateIndirect功能的例子.这是最好的方法吗?还有其他方法吗?
谢谢!
我不想禁用IntelliSense,但我没有看到任何其他解决方案.
我有Visual C++ v10.0.30319.1,最大缓存转换单位= 2.但是,仍然有几十个vcpkgsrv.exe进程被占用,消耗大量内存(并使计算机无法使用).Windows 7专业版.
您知道的任何解决方案?谢谢.
我找不到如何在"变量"窗口中更改背景颜色.当一个变量在调试时被改变时,它会突出显示一个可怕的黄色背景,在我的zenburn样式colorset中不允许我清楚地看到该行.
我能以某种方式改变那个背景吗?
谢谢,
我想知道是否有办法禁用特定文件上的所有警告(例如,使用预处理器指令).
我正在使用CImg.h,我想摆脱涉及该代码的警告.
我正在使用VS(Windows版本)和gcc(Linux版本)进行编译,所以我希望有一个通用的方法......
谢谢!
我想这是一个非常荒谬/基本的问题,但仍然是:
class m
{
public:
void f(int ***);
/***/
}
void m::f(int ***a = NULL)
{
/***/
}
Run Code Online (Sandbox Code Playgroud)
对f的调用(以及任何具有所有参数的默认值的函数)都不接受0参数.为什么?那我该如何格式化声明呢?
如何从基类调用派生函数?我的意思是,能够将一个函数从基类替换为派生类.
防爆.
class a
{
public:
void f1();
void f2();
};
void a::f1()
{
this->f2();
}
/* here goes the a::f2() definition, etc */
class b : public a
{
public:
void f2();
};
/* here goes the b::f2() definition, etc */
void lala(int s)
{
a *o; // I want this to be class 'a' in this specific example
switch(s)
{
case 0: // type b
o = new b();
break;
case 1: // type c
o = new …Run Code Online (Sandbox Code Playgroud) 我想知道......我想在一个基于DropDownList的Component中迭代dataProvider.第一件事,它不起作用(它编译,但从未迭代),是:
var o:Object;
for each (var o:Object in dataProvider)
{
}
Run Code Online (Sandbox Code Playgroud)
我想它不起作用,因为IList不提供对象,或者某些人能够轻松解释的东西.
从效率的角度来看,我尝试了一些看起来很糟糕的东西,但它确实有效.就是这个:
for (var i:int = 0; i < dataProvider.length; i++)
{
o = dataProvider.getItemAt(i);
}
Run Code Online (Sandbox Code Playgroud)
但它太可怕了,我觉得很想在这里询问另一种可能的解决方案.
更新:
我将尝试详细阐述......我正在制作(好吧,它已经成为)一个组件,就像DropDownList一样,是可绑定的,而不是索引(如selectedIndex ="@ {variable}"),但是到ArrayCollection中的变量值.
比如说,你有一个带有两个对象的dataProvider:{a:'5', nmb:'five', blabla:'cinco'}和{a:'39', nmb:'thirty-nine', blabla:'treinta y nueve'}.
这个组件,如果这样声明:
<com:ddListN idxName="a" selectedN="@{val}" labelField="nmb">
Run Code Online (Sandbox Code Playgroud)
用于val将DropDownList设置/获取到正确的索引,将值与idxName中定义的变量进行比较.
嗯,这是整个代码(不是那么多):
<?xml version="1.0" encoding="utf-8"?>
<s:DropDownList xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
change="ch()">
<fx:Declarations>
</fx:Declarations>
<fx:Script>
<![CDATA[
private var _selectedN:String;
public var idxName:String = 'n';
[Bindable(event="changeSelected")]
public function get selectedN():String
{
return this.selectedItem[idxName]; …Run Code Online (Sandbox Code Playgroud) 它仅用于"调试"目的,因此我不想花费大量时间来处理它,也不是非常重要.该程序将数据导出为png,jpg,svg等... - 这不是什么大不了的事,尽管在生成图像时看到图像会很好.此外,该程序将用于Linux服务器; 但我会将这个'功能'限制在Win版本中.
我也不想使用库,除非它非常非常轻量级(我使用CImg一段时间,但我对它的速度不是很满意,所以我最后自己编写了重要的函数并且只是使用了libjpeg和libpng直接).
我有ARGB格式的图像(32bpp),虽然转换格式根本不是问题.我想使用Win32,从代码内部的函数创建窗口(没有已知的hInstance等),并编写位图.希望快速而简单.
但我不知道win32api足够了.我已经看到绘制(GDI)的唯一选择是通过HBITMAP对象...我可以依赖的任何代码片段或示例?我可能不会忽视任何考虑因素?或者也许 - 考虑我的时间限制 - 我应该忘记它吗?
谢谢!
c++ ×6
function ×2
iterator ×2
winapi ×2
apache-flex ×1
arguments ×1
bitmap ×1
class ×1
dataprovider ×1
default ×1
dereference ×1
dialog ×1
eclipse ×1
g++ ×1
gdi ×1
include ×1
inheritance ×1
intellisense ×1
libpng ×1
stl ×1
visual-c++ ×1
warnings ×1
windows ×1
zlib ×1