首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代C++中对象的创建

迭代C++中对象的创建
EN

Stack Overflow用户
提问于 2022-03-18 05:59:18
回答 1查看 66关注 0票数 -1

我想创造出N座摩天大楼。使用一个inputdata字符串,我想给他们X和Y位置的坐标值。我的主要功能,我用“我”来证明,我试图创造尽可能多的摩天大楼,我可以使用输入数据。本质上,我想创建N/3摩天大楼,并将输入分配给每个坐标。

代码语言:javascript
复制
#include <iostream>
#include <vector>
#include <string>
#include <math.h>

using namespace std;  
vector<int> inputData = {1, 4, 10, 3, 5, 7, 9, 10, 4, 11, 3, 2, 14, 5, 5}; 
int N = inputData.size();

class Buildings{
    public: 
        int yCoordinateLow; 
        int yCoordinateHigh; 
        int xCoordinateLeft; 
        int xCoordinateRight;

}; 

int main(){ 
    for(int i=0; i<N; i=i+3){
        Buildings skyscraper; 
        skyscraper.xCoordianteLeft = inputData.at(i); 
        skyscraper.yCoordianteLow = 0;
        skyscraper.yCoordinateHigh = inputData.at(i+1); 
        skyscraper.xCoordinateRight = inputData.at(i+2); 
    }
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-18 06:10:43

杰夫·阿特伍德曾说过:用金钱能买到的最好的工具。这些甚至都不贵: Visual社区版是免费的。这样一个合适的IDE会告诉您,除了任务之外,摩天大楼是未使用的。

因为你以后可能想对那些摩天大楼做些什么,所以你应该把它们放在某个地方,例如在另一个矢量中。

代码语言:javascript
复制
int main() {
    vector<Buildings> skyscrapers;
    for (int i = 0; i < N; i = i + 3) {
        Buildings skyscraper{};
        skyscraper.xCoordinateLeft = inputData.at(i);
        skyscraper.yCoordinateLow = 0;
        skyscraper.yCoordinateHigh = inputData.at(i + 1);
        skyscraper.xCoordinateRight = inputData.at(i + 2);
        skyscrapers.push_back(skyscraper);
    }
    return 0;
}

除此之外,我认为只要原始向量中有N*3坐标,循环就能正常工作。

如果您实现了一个游戏,您可能不会硬编码摩天大楼坐标在一个向量,而是从一个文件读取数据,潜在的每一层。

与其进行所有容易出错的编码,不如立即初始化摩天大楼。

代码语言:javascript
复制
vector<Buildings> skyscrapers = {{1,0,4,10}, {3,0,5,7}, {9,0,10,4}, {11,0,3,4}, {14,0,5,5}};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71523003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档