小编Zee*_*yat的帖子

从自定义数据类型向量中删除重复元素

我试图擦除重复的向量元素.首先,我对元素进行排序,然后查找重复项.我重载了sort函数但是我不确定如何重载以擦除部分.

class cp_data
{
    public:
    int num;
    char name;
    cp_data(int a, char b)
    {
        num = a;
        name = b;
    }
};
int main()
{
    std::vector<cp_data> data;
    cp_data data1(1, 'a');
    cp_data data2(2, 'b');
    cp_data data3(1, 'a');
    cp_data data4(2, 'b');
    data.push_back(data1);
    data.push_back(data2);
    data.push_back(data3);
    data.push_back(data4);
    std::sort( data.begin(), data.end(), []( const cp_data& lhs, const cp_data& rhs )
    {
        return lhs.num< rhs.num;
    });   
    data.erase(unique(data.begin(), data.end()), data.end());
    system("pause");
}
Run Code Online (Sandbox Code Playgroud)

此代码给出以下错误.

错误C2672'operator __surrogate_func':没有匹配的重载函数错误C2893无法专门化函数模板'unknown-type std :: equal_to :: operator()(_ Ty1 &&,_ Ty2 &&)const'

c++ algorithm vector

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

使用-std = gnu ++ 11开关编译时std :: equal错误

当我在没有-std = gnu ++ 11开关的情况下编译时,这个循环工作正常.如果我使用-std = gnu ++ 11进行编译,则会出现以下错误:

no match for call to '(__gnu_cxx::__normal_iterator<const float*, std::vector<float> >) (const float&, const float&)' if (!bool(__binary_pred(*__first1, *__first2))) 
Run Code Online (Sandbox Code Playgroud)

我的代码:

for (auto it_A = std::begin(vector_A); it_A != std::end(vector_A); it_A += 4)
{
    bool found_in_B = false;
    for (auto it_B = std::begin(vector_B); !found_in_B && it_B != std::end(vector_B); it_B += 4)
    {
        found_in_B = std::equal(it_A, it_A + blockSize, it_B, it_B + blockSize);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ vector std

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

如何通过调用非默认构造函数来构造对象数组?

我有一个hi带有非默认构造函数的类,它带有两个参数.我正在尝试构造一个his 数组:

class hi {
  public:
    hi(int a, int b){};
};

int main() {
  hi *hello;
  int number_of instance = 5;
  hello = new hi[number_of_instance]; // (1)
}
Run Code Online (Sandbox Code Playgroud)

如何hi::hi(int,int)在标记的线上调用(1)

c++ arrays constructor pointers

-1
推荐指数
1
解决办法
83
查看次数

标签 统计

c++ ×3

vector ×2

algorithm ×1

arrays ×1

constructor ×1

pointers ×1

std ×1