初始化C++中的对象向量
Initialize a vector of objects in C++
我的问题是:我有一个名为 City 的类,其中包含参数名称、纬度和经度。在我的主课中,我想初始化一些城市的向量。
这是我的城市头文件:
using namespace std;
#define RADIUS 6378.137
#define PI 3.14159265358979323846
class City {
public:
City(string _name, double _latitude, double _longitude) {
name = _name;
longitude = _longitude * PI / 180.0;
latitude = _latitude * PI / 180.0;
}
~City() { };
private:
double longitude;
double latitude;
string name;
double earthRadius = RADIUS;
};
然后是我的主类文件:
#include <iostream>
#include <vector>
#include "Route.h"
using namespace std;
vector<City> initRoute { (("Boston", 42.3601, -71.0589),
("Houston", 29.7604, -95.3698), ("Austin", 30.2672, -97.7431),
("San Francisco", 37.7749, -122.4194), ("Denver", 39.7392, -104.9903),
("Los Angeles", 34.0522, -118.2437), ("Chicago", 41.8781, -87.6298)) };
int main() {
//for each(City city in initRoute)
//city.printCity;
system("pause");
return 0;
}
当我尝试编译时,它会发出错误 C2398:
Error C2398 Element "1": Die Conversion from "double" to "unsigned int"
requires a restrictive conversion.
我感觉我的向量初始化是错误的,但我不知道该改变什么。
感谢您的帮助:)
在将对象添加到vector
时,必须指定对象的类型。
即
vector<City> initRoute { City("Boston", 42.3601, -71.0589),
City("Houston", 29.7604, -95.3698), ... };
或
您可以使用{}
来表示对象,而无需显式提及类,因为您的向量包含City
对象(就像您使用struct
s 一样(。
即
vector<City> initRoute { {"Boston", 42.3601, -71.0589},
{"Houston", 29.7604, -95.3698}, ... };
相关文章:
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 从多个源构造一个对象,包括一个对象向量
- 如何从文件中读取两个字符串和数字数组,并将它们存储在对象向量中
- 对象 C++ 向量的 STL 容器
- 初始化C++中的对象向量
- 从自定义类获取对象向量中的 max 元素
- 如何在 c++ 中打印存档中的对象向量
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 尝试重载输出运算符时,我无法遍历对象向量
- 如何在C++中打印对象向量的内容
- 打印出对象向量中的每个元素C++
- 在 c++ 的构造函数中分配对象向量时出错
- 遍历对象向量,并找到与从文本文件中提取的对象匹配的变量
- 对象向量是否在堆或堆栈上分配C++?
- 基于不同字段的对象向量的排序功能
- 有没有一种简单的方法可以在对象向量上调用构造函数?
- 用rapidjson读取子对象向量
- 尝试使用比较运算符对对象向量进行排序
- 如何用对象向量重载 cin(>>)
- 如何将某个元素从shared_ptr擦除到对象向量?