小编Mih*_*yan的帖子

如何获取std :: list中的next(previous)元素而不递增(递减)迭代器?

假设我有一个std::list<int> lst和一些std::list<int>::iterator it迭代列表.并依赖于it我想要使​​用的值it + 1it - 1在我的代码中.有没有一些好方法可以做到这一点next(),prev()(我在stl文档中找不到这样的东西)?或者我应该复制it每次并增加(减少)副本?

c++ iterator list

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

为什么不可能在c ++中创建引用数组?

C++标准8.3.2/4说:

不应引用引用,不引用引用数组,也不引用引用指针.

但我无法理解为什么这个限制被添加到c ++中.在我看来,下面的代码可以很容易地编译和工作?这种限制的真正原因是什么?

int a = 10, b = 20;
int &c[] = {a, b};
Run Code Online (Sandbox Code Playgroud)

c++ arrays reference

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

(bool)(i&1)和i%2 == 1相同吗?

(bool)(i & 1)i % 2 == 1总是相同的地方iint

注意:总是说我的意思是所有平台(即使字节是16位)和所有C和C++标准.

编辑:

适用于所有C和C++标准bool.

c c++ cross-platform

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

如何在Perl中刷新文件?

我有Perl脚本,每隔3秒就会在现有文件中添加一行新内容.此外,还有一个从该文件中读取的C++应用程序.

问题是应用程序在脚本完成并且文件句柄关闭后开始读取文件.为了避免这种情况,我想在每行附加后刷新,但我是Perl的新手,不知道该怎么做.

perl file flush io-buffering

23
推荐指数
3
解决办法
6万
查看次数

如何在WinApi中从HANDLE制作FILE*?

有没有简单的方法从WinApi HANDLE创建指向管道一端的FILE*?像我们在unix中做的事:fdopen(fd,<mode>);

c c++ winapi

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

如何删除通过放置新运算符构造的对象?

char * buf = new char[sizeof(T)];
new (buf) T;
T * t = (T *)buf;
//code...
//here I should destruct *t but as it is argument of template and can be
//instantiated via basic types as well (say int) so such code 
/*t->~T();*/
//is incorrect (maybe correct? Strange, but it works on VS 2005 for basic types.)
//and this code 
/*delete t;*/ 
//crashes the program.
delete [] buf;
Run Code Online (Sandbox Code Playgroud)

那么破坏的正确方法是t什么?

PS上面的代码仅用于描述我的问题,并且与我要编写的代码没有真正的关系.所以请不要给出答案(为什么使用展示位置new代替非展示位置?或类似的东西)

c++ templates destructor placement-new new-operator

19
推荐指数
3
解决办法
5508
查看次数

C++中的分号是什么?

粗略地说,在C++中有运算符+,标识符(类的名称,变量,函数,...),const文字-,一些关键字*,括号[],预处理器new.但是什么是分号?

c++

17
推荐指数
5
解决办法
3万
查看次数

超载一元运算符&

让我们考虑一个带有重载的一元运算符和(Address-of)的类.随它去class A

template <class C>
class A
{
public:
    C * operator &()
    {
        return &data;
    }
    //...
private:
    C data;
}
Run Code Online (Sandbox Code Playgroud)

现在我想传递一些函数指针A来填充它data.我们称之为f

void f(A * auto_containter)
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

但很明显为什么代码波纹管不起作用(甚至不会编译).这是因为调用了重载运算符.

A a;
f(&a);
Run Code Online (Sandbox Code Playgroud)

问题如下:

是否有任何语法传递的地址af?如果不是,那么对我来说,为什么它允许超载一元是非常奇怪的operator &,因为它使代码更加错误和难以理解.还是有其他一些原因?

c++ operator-overloading

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

TCHAR和WCHAR有什么区别?

我打开了winnt.h头文件,发现有两行:

typedef wchar_t WCHAR;
Run Code Online (Sandbox Code Playgroud)

typedef WCHAR TCHAR, *PTCHAR;
Run Code Online (Sandbox Code Playgroud)

但我的一篇帖子中有评论说它们之间存在一些差异.那有什么区别?

c++ winapi

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

坚持面试问题......数组的分区

我在互联网上发现了以下问题,并想知道我将如何解决它:

问题:没有重新排列的整数分区

输入:非负数的排列S {s 1,... ..,s n }和整数k.

输出:将分区S分成k个或更少的范围,以最小化所有k个或更少范围的总和的最大值,而无需重新排序任何数字.*

请帮忙,看起来像有趣的问题......我实际上花了很多时间,但没有看到任何解决方案..

algorithm dynamic-programming

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