如何通过不同的类将一个向量复制到另一个向量

hrq

我正在尝试制作一个程序,要在其中复制一个已经定义的向量到另一个,但是在另一个继承的类中。就像这样:

//map.cpp
void Map::setQuantity() {
std::cout << "set quantity: ";
std::cin >> quantity;
}


void Map::setArray(){
    for(int i=0;i<quantity;++i) {
        cityMap.push_back(City());
        }
    }

void Map::showMap(){
    for(int i=0;i<quantity;++i){
        cityMap[i].showCoords();
        }
    }

double Map::getLength(int a, int b) {
    return sqrt(pow(cityMap[a-1].getCoordX()-cityMap[b-1].getCoordX(),2)+pow(cityMap[a-1].getCoordY()-cityMap[b-1].getCoordY(),2));
    }

int Map::getQuantity() {
    return quantity;
    }

Map::Map() {
}

Map::~Map() {
}

//city.cpp
int City::randomize(int range) {

return rand()%range + 1;
}

void City::setCoords(){
    coord_x = randomize(1000);
    coord_y = randomize(1000);
}

void City::showCoords(){
    std::cout << "x = " << coord_x << " y = " << coord_y << std::endl;
    }

int City::getCoordX(){
    return coord_x;
}

int City::getCoordY() {
    return coord_y;
}

City::City(){
    setCoords();
}

//populations.h
class Populations: public Map {
    protected:
    std::vector<City> startPop;
    std::vector<City> newPop;
    public:
    void showPop();
    void setStartPopulation();
    Populations();
    };

此时,pants.cpp为空。当我尝试使用startPop = cityMap, copy()或声明startPop(cityMap)即使有时编译也要复制它时,在运行试图复制矢量的构造函数后,出现了段错误(核心转储)错误。就像“人口”类没有访问cityMap矢量的权限一样,即使我已经将其公开。我真的不知道如何使它起作用,所以请帮助我。哦,正确分配了cityMap

斯蒂芬

有多个选项可将一个向量复制到另一向量。

您可以使用std::copy算法,但需要包含algorithm头文件:

#include<algorithm>
std::copy(cityMap.begin(),cityMap.end(),std::back_inserter(startPop));

或者,您可以startPop使用复制构造函数进行构造,如下所示:

startPop(cityMap);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过转换将C ++向量复制到另一个向量的最佳方法

以相反的顺序将一个向量复制到另一个向量

将一个向量的元素复制到另一个向量

将向量的向量元素复制到另一个向量

如何将一个向量复制到另一个向量的末尾?

如何将向量复制到另一个向量的子向量而不会出现段错误?

如何将引用的内容复制到另一个stl向量?

仅将向量中的字母复制到C ++中的另一个向量

如何将一个向量元素的引用复制到另一向量?

将一个向量复制到另一个向量,省略NA值

如何在不更新原始向量的情况下将一个向量复制到Java中的另一个向量?

如何将std :: vector <Eigen :: vectorXd>中的向量复制到另一个std :: vector <Eigen :: vectorXd>中的另一个向量

如何使用OpenCV在C ++中将向量的向量结构复制到另一个向量

将项目从一个向量复制到另一向量

有条件地将一个向量复制到另一个向量的最快方法

如何通过另一个向量对一个向量的向量进行排序?

如何将元素的最后一个类复制到jQuery中的另一个元素?

如何将属性从一个bean复制到另一个类中的另一个bean?

如何将一个流的内容复制到另一个?

如何将一个迭代器复制到另一个?

如何将一个ArrayList的内容复制到另一个?

如何将一个Google文档复制到另一个

如何在不复制的情况下将一个向量移动到另一个向量

将QStandardItemModel复制到另一个

如何将原子向量转换为另一个向量的类

如何将向量复制到另一个位置并重用现有的已分配内存?

如何在javascript中将一个类的属性复制到另一个类,包括方法

如何在C ++中将指向一个类的指针复制到另一个类中?

将数据从一个表复制到另一个不同的列名