相关疑难解决方法(0)

指针作为地图C++ STL中的键

我有一个问题,当在地图中用作键时,如何处理指向自定义对象的指针.更具体地说,如果我定义

std::map< CustomClass*, int > foo;
Run Code Online (Sandbox Code Playgroud)

默认的C++实现是否可以处理这些指针?或者我是否需要定义自定义比较器函数来处理它?通常,使用指向对象的指针作为键是一种好习惯吗?

c++ pointers stl map

38
推荐指数
5
解决办法
2万
查看次数

检查指针是否指向数组

我可以检查给定指针是否指向由其边界指定的数组中的对象?

template <typename T>
bool points_within_array(T* p, T* begin, T* end)
{
    return begin <= p && p < end;
}
Run Code Online (Sandbox Code Playgroud)

或者,如果p指向数组范围之外的点,指针比较是否会调用未定义的行为?在那种情况下,我该如何解决这个问题?它是否适用于void指针?还是不可能解决?

c++ arrays comparison pointers

14
推荐指数
4
解决办法
4122
查看次数

使用std :: less和nullptr

以下代码段中的断言是否始终有效?

std::less<Object *> lessPtr;
Object * o = new Object();
assert(lessPtr (o, nullptr) == false);
Run Code Online (Sandbox Code Playgroud)

c++ c++11

12
推荐指数
2
解决办法
1065
查看次数

C++:运算符重载<用于指向对象的指针

我想通过他们的地址比较两个对象.我试过运算符重载,它似乎不适用于指针,但适用于对象本身.以下是相关代码:

class C {
        public:
                int x;
};
.
.
.
bool operator <( C *ptr_c1, C *ptr_c2 )
{
        return ( (*ptr_c1).x < (*ptr_c2).x );
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers operator-overloading

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

C/C++中原始指针和函数指针支持的操作是什么?

函数指针支持的所有操作与原始指针有什么不同?是>,<,<=,> =原始指针支持的运算符如果有,有什么用?

c c++ pointers function-pointers

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

std ::对象或对象指针的映射?

我有两个选项来创建一个std地图.我可以使用两种类型的地图.

1.    std::map<A, std::string>    
2.    std::map<A*, std::string>
Run Code Online (Sandbox Code Playgroud)

哪个A是类对象

稍后在代码中我将不得不执行查找操作.

1.    std::map<A, std::string>   myMap1;
          if(myMap1.find(A_obj) != myMap1.end())
          {
          }

2.    std::map<A*, std::string>   myMap2;
          if(myMap2.find(A_obj_ptr) != myMap2.end())
          {
          }
Run Code Online (Sandbox Code Playgroud)

我想知道建议创建哪一个.在这两个中的哪一个中,我不必重载类中的任何运算符以A使查找操作起作用.当任何运算符没有过载时,哪些在插入操作上会出现问题.

如果有帮助,这是A类

class A
{
    private:
        std::vector<std::string> m_member;

    public:
        A(std::vector<std::string> input);  
};
Run Code Online (Sandbox Code Playgroud)

c++ class map find

5
推荐指数
1
解决办法
3635
查看次数

指针比较

做在C和C++支持比较运算符指针(>,<等)在标准?

我想比较阵列位置是准确的.

c c++ pointers

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