我们可以使用remove_if在C++中根据对元素进行操作的谓词,在线性时间内从向量中删除元素。
bool condition(double d) {...}
vector<double> data = ...
std::remove_if (data.begin(), data.end(), condition);
如果我的情况不是取决于数值,而是取决于指数呢?换句话说,如果我想删除所有的奇数索引元素,或者一些任意的索引集,等等?
bool condition(int index) {//returns whether this index should be removed}
我正在尝试下面的代码来创建基类的向量并动态分配派生类。
#include <memory>
#include <vector>
#include <iostream>
#include <algorithm>
class Base {
public:
Base(int value) : item(value) {}
int item;
};
class Derived : public Base {
public:
Derived() : Base(0) {}
};
class Fac {
public:
int cou
我想知道如何根据条件从列表中删除对象。
经过研究,这就是我得到的,但它仍然不起作用!
所以我想知道如何使用带有擦除功能的remove_if。
Class A
{
public:
A(int x,int y);
int x;
int y;
};
int main()
{
list<A> listA;
A lista1(123,32);
listA.push_back(lista1);
A lista2(3123,1233);
listA.push_back(lista2);
A lista3(123,412
我想删除字符串中的撇号。我试着写一些东西,但似乎我的语法是错误的。我不知道问题出在哪里,但我知道我的语法有问题。我使用Dev-C++。
{...
cout<<"enter the word to test "<<endl;
getline(cin,givenword);
string str (givenword);
std::string deleteapostr(givenword);
// trying to delete apostrophe if present in the string
deleteapostr.erase(std::re
~我在自学c++ ~ 我有一个对象的类字段向量,我想要遍历和擦除不满足特定条件的东西。 myVector是{obj1= val 1,obj2= val 2,obj3= val3 }。。。myVectori为{obj1= val x,obj2= val y,obj3= valz } 我的问题是为了将值传递给谓词函数,我需要访问该索引处的对象id和值。但我不知道如何实现它,所以我迭代/递增。或者更具体地说,如何在每个索引处传递键值?我在请求语法帮助。 如下所示: myVector.erase(std::partition(myVector.begin(),myVector.end(), pred
我正在寻找一种聪明的方法,在迭代时删除向量中的一些元素,并找到了。
当然,它对我不起作用,因为C++98没有lambdas。查找remove_if信息并找到e。下面是我的代码:
#include <algorithm>
#include <vector>
bool isOutageValid(const Outage& outage){
return outage.getEndTime() >= 0;
}
std::vector<Outage> outages;
// Some stuff to fill the vector
o
我的代码:
using namespace std;
class A{public:
int a;
A(int itemA) {a=itemA;}
};
class B:A{public:
int b;
B(int itemA, int itemB) {a=itemA; b=itemB;}
};
class C{
list<A> a;
list<B> b;
void transferAB(const A& pA, int itemb){
a.remove(pA);
b.push_back(B(pA.a, it