小编Soo*_*Tan的帖子

为什么从C++ 11中删除了对范围访问?

我刚刚发现,在某一点上,C++ 11草案具有std::begin/ std::end重载std::pair,允许将一对迭代器视为适合在基于范围的for循环中使用的范围(N3126,第20.3.5.5节),但这有自从被删除.

有谁知道为什么它被删除了?

我发现删除非常不幸,因为似乎没有其他方法可以将一对迭代器视为范围.确实:

  • 在基于范围的for循环中开始/结束的查找规则表示在1)中作为范围对象2)的成员函数查找开始/结束作为"关联命名空间"中的自由函数
  • std::pair 没有开始/结束成员函数
  • 通常唯一关联的命名空间std::pair<T, U>是namespace std
  • 我们不允许超载std::begin/ std::endstd::pair自己
  • 我们不能专门化std::begin/ std::endfor std::pair(因为专业化必须是部分的,而且不允许使用函数)

还有其他一些我失踪的方式吗?

c++ foreach range c++11 std-pair

54
推荐指数
3
解决办法
8009
查看次数

命名空间中的#define语句

如果我在命名空间中有#define语句:

namespace MyNamespace
{
  #define SOME_VALUE 0xDEADBABE
}
Run Code Online (Sandbox Code Playgroud)

我是否正确地说#define语句不限于名称空间?

以下是"正确"的事情吗?

namespace MyNamespace
{
  const unsigned int SOME_VALUE = 0xDEADBABE;
}
Run Code Online (Sandbox Code Playgroud)

c++ namespaces

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

如何在Android上以编程方式取消配对或删除配对的蓝牙设备?

该项目是使用我的Android手机连接我的arduino设备.但是我如何解除配对的配对.我看到配对列表似乎存储在bluetoothadapter可以随时检索的位置.

PS:1,我知道长按配对设备将取消配对.
但问题是如何以编程方式实现这一目标?

2,我检查了bluetoothdevice和bluetoothAdapter类,没有实现这个的功能.

谢谢.

android bluetooth arduino

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

在地图中使用pair作为键(C++/STL)

我想使用STL中的一对作为地图的关键.

#include <iostream>
#include <map>

using namespace std;

int main() {

typedef pair<char*, int> Key;
typedef map< Key , char*> Mapa;

Key p1 ("Apple", 45);
Key p2 ("Berry", 20);

Mapa mapa;

mapa.insert(p1, "Manzana");
mapa.insert(p2, "Arandano");

return 0;

}
Run Code Online (Sandbox Code Playgroud)

但是编译器会抛出一堆不可读的信息,而且我对C和C++很新.

如何在地图中使用一对作为键?一般而言,我如何使用任何类型的结构(对象,结构等)作为地图中的键?

谢谢!

c++ stl map std-pair

32
推荐指数
3
解决办法
7万
查看次数

使用带有两个字段和一对的结构有什么区别?

使用具有两个字段和一对的结构之间的内存分配和效率有什么区别?

c++ struct std std-pair

31
推荐指数
3
解决办法
3014
查看次数

如何在C++中存储一对数字?

我正在尝试学习C++,现在我正在编写一个需要输出整数对列表的程序.

处理这个问题的最佳方法是什么?我在学校的linux电脑上没有可用的升级库,所以我不相信我可以使用boost :: tuple.

有什么建议?

c++ stl std-pair

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

在C++中将变量名转换为字符串

我想将一些数据输出到文件中.例如假设我有两个双打向量:

vector<double> data1(10);
vector<double> data2(10); 
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法将其输出到文件,以便第一行包含标题'data1'和'data2',后跟实际内容.输出数据的函数将传递各种不同的数组,因此不可能硬编码标题的名称 - 理想情况下,我想将变量名称转换为某个字符串,然后输出该字符串,后跟向量数组的内容.但是,我不确定如何将变量名'data1'转换为字符串,或者确实如果它可以很容易地完成(从阅读论坛我的猜测是不可以)如果这是不可能的替代可能是使用关联容器(如map)或更简单的"对"容器.

pair<vector<double>,string> data1(10,'data1');  
Run Code Online (Sandbox Code Playgroud)

欢迎大家提出意见!

c++ string variables map std-pair

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

C++ std :: transform of pairs-> first to new vector

对不起有点初学者的问题.有矢量和矢量对

typedef std::vector <int> TItems;
typedef std::vector < std::pair <int, int> > TPairs;
Run Code Online (Sandbox Code Playgroud)

有没有办法在一步中将对中的所有第一项转换为另一个向量

int main ()
{
TItems items;
TPairs pairs;

pairs.push_back (std::make_pair(1,3));
pairs.push_back (std::make_pair(5,7));

std::transform( items.begin(), items.end(), items.begin(), comp ( &pairs ) );

return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何设计仿函数?

class comp
{
private:
     TPairs *pairs;

public:
    comp ( TPairs  *pairs_ ) : pairs ( pairs_) { }

    unsigned int operator () ( const unsigned int index ) const
    {
        return  (*pairs)[index].second != pairs->end();  //Bad idea
    }
};
Run Code Online (Sandbox Code Playgroud)

也许有一些没有lambda表达式和循环的用户友好方法.谢谢你的帮助.

c++ transform vector functor std-pair

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

STL地图插入效率:[]与插入

地图插入有两种方式:

m[key] = val;
Run Code Online (Sandbox Code Playgroud)

要么

m.insert(make_pair(key, val));
Run Code Online (Sandbox Code Playgroud)

我的问题是,哪个操作更快?人们通常说第一个较慢,因为如果'key'在map中不存在,STL Standard首先'插入'一个默认元素,然后将'val'分配给默认元素.

但由于'make_pair',我没有看到第二种方式更好.make_pair实际上是一种方便的方式来制作'对' pair<T1, T2>(key, val).无论如何,他们都做了两个任务,一个是将'key'分配给'pair.first',两个分配'val'给'pair.second'.完成配对后,map将插入由'pair.second'初始化的元素.

所以第一种方式是1.' default construct of typeof(val)'2.分配第二种方式是1.赋值2.' copy construct of typeof(val)'

c++ stl insert map std-pair

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

Objective-C中的C++ STL容器"pair <T1,T2>"的等价物?

我是Objective-C的新手,所以请不要过多地评价我.我想知道:我可以在Objective-C中使用相当于C++ STL对的容器吗?

我想构建一个包含与NSBool关联的NSInteger的数组.我知道我可以使用一个数组,每个条目都是一个具有单个键值的NSDictionary,但我发现它有点矫枉过正.

有任何想法吗?

谢谢.

c++ iphone stl objective-c std-pair

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