小编huf*_*uff的帖子

检查迭代器是否有效

有没有办法检查迭代器(无论是来自向量,列表,双端队列......)是否(仍)可解除引用,即未被无效?

我一直在使用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)

c++ iterator stl dereference

63
推荐指数
5
解决办法
7万
查看次数

链接libpng和zlib?

我正在尝试编译一个同时使用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,似乎有一个很好的结构.重新编译它,一切看起来都很好.但它不是...... …

g++ zlib libpng

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

C++ Win32api,创建一个没有资源的对话框

我是win32api编程的新手.我想知道如何在非gui程序中创建一个对话框(没有创建任何资源).

我已经看到了一些具有该CreateIndirect功能的例子.这是最好的方法吗?还有其他方法吗?

谢谢!

c++ windows winapi dialog

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

Visual C++ Express - 几十个vcpkgsrv.exe

我不想禁用IntelliSense,但我没有看到任何其他解决方案.

我有Visual C++ v10.0.30319.1,最大缓存转换单位= 2.但是,仍然有几十个vcpkgsrv.exe进程被占用,消耗大量内存(并使计算机无法使用).Windows 7专业版.

您知道的任何解决方案?谢谢.

intellisense visual-c++

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

Eclipse"Variables"窗口,改变了颜色值

我找不到如何在"变量"窗口中更改背景颜色.当一个变量在调试时被改变时,它会突出显示一个可怕的黄色背景,在我的zenburn样式colorset中不允许我清楚地看到该行.

我能以某种方式改变那个背景吗?

谢谢,

eclipse

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

C++禁用特定包含的警告

我想知道是否有办法禁用特定文件上的所有警告(例如,使用预处理器指令).

我正在使用CImg.h,我想摆脱涉及该代码的警告.

我正在使用VS(Windows版本)和gcc(Linux版本)进行编译,所以我希望有一个通用的方法......

谢谢!

c++ warnings include

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

C++ ...当所有参数都有默认值时

我想这是一个非常荒谬/基本的问题,但仍然是:

class m
{
public:
   void f(int ***);
  /***/
}
void m::f(int ***a = NULL)
{
  /***/
}
Run Code Online (Sandbox Code Playgroud)

对f的调用(以及任何具有所有参数的默认值的函数)都不接受0参数.为什么?那我该如何格式化声明呢?

c++ arguments default function

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

C++继承,从基类调用派生函数

如何从基类调用派生函数?我的意思是,能够将一个函数从基类替换为派生类.

防爆.

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)

c++ inheritance class function

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

在flex中迭代dataProvider

我想知道......我想在一个基于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)

apache-flex iterator dataprovider

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

C++ Win32,显示带位图的窗口的最简单方法

它仅用于"调试"目的,因此我不想花费大量时间来处理它,也不是非常重要.该程序将数据导出为png,jpg,svg等... - 这不是什么大不了的事,尽管在生成图像时看到图像会很好.此外,该程序将用于Linux服务器; 但我会将这个'功能'限制在Win版本中.

我也不想使用库,除非它非常非常轻量级(我使用CImg一段时间,但我对它的速度不是很满意,所以我最后自己编写了重要的函数并且只是使用了libjpeg和libpng直接).

我有ARGB格式的图像(32bpp),虽然转换格式根本不是问题.我想使用Win32,从代码内部的函数创建窗口(没有已知的hInstance等),并编写位图.希望快速而简单.

但我不知道win32api足够了.我已经看到绘制(GDI)的唯一选择是通过HBITMAP对象...我可以依赖的任何代码片段或示例?我可能不会忽视任何考虑因素?或者也许 - 考虑我的时间限制 - 我应该忘记它吗?

谢谢!

c++ winapi gdi bitmap

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