我想在C++中将一些东西插入到STL列表中,但我只有一个反向迭代器.通常的方法是什么?
这有效:(当然可以)
std::list<int> l;
std::list<int>::iterator forward = l.begin();
l.insert(forward, 5);
Run Code Online (Sandbox Code Playgroud)
这不起作用:(我该怎么办?)
std::list<int> l;
std::list<int>::reverse_iterator reverse = l.rbegin();
l.insert(reverse, 10);
Run Code Online (Sandbox Code Playgroud) 下面是一些简单的Perl来计算数组中出现值的次数.这没有任何警告.
use warnings;
use strict;
my @data = qw(1 1 2 3 4 5 5 5 9);
my %histogram;
foreach (@data)
{
$histogram{$_}++;
}
Run Code Online (Sandbox Code Playgroud)
当循环体变为
$histogram{$_} = $histogram{$_} + 1;
Run Code Online (Sandbox Code Playgroud)
Perl警告"另外使用未初始化的值".
引擎盖下发生了什么?当作为操作符提供给++运算符并且使用+运算符未初始化时,为什么值被初始化?
与SunStudio11捆绑在一起的STLport会产生很多警告.我相信大多数编译器都有办法禁用某些源文件的警告,如下所示:
太阳C.
#pragma error_messages off
#include <header.h>
// ...
#pragma error_messages on
Run Code Online (Sandbox Code Playgroud)
GCC
#pragma warning(push, 0)
#include <header.h>
// ...
#pragma warning(pop)
Run Code Online (Sandbox Code Playgroud)
你如何在SunStudio C++编译器中做到这一点?(顺便说一句,sunstudio C pragma在sunstudio C++中不起作用)