如何在 C++ 中创建类对象的向量?

2024-01-21

我正在尝试使用 C++ 中的向量创建一个简单的堆栈。

这是代码:

#include <vector>

class Site
{
    public:
        int i; // site position i (x-axis)
        int s; // site state
        vector<Site> neighbors;
        Site(void);
        Site(int ii, int ss);
        void AddNeighbor(Site &site);
};
Site::Site()
{
    i = -1;
    s = -1;
    vector<Site> neighbors;
}
Site::Site(int ii, int ss) 
{
    i = ii;
    s = ss;
}
void Site::AddNeighbor(Site &site)
{
    neighbors.push_back(site);
}

void testStack()
{
    int tot = 600;
    vector<Site> myStack();
    int i = 0;
    while (i < tot)
    {
        Site site(i, 1);
        myStack.push_back(site);
        i++;
    }

    i = 0;
    while (i < tot)
    {
        Site *site = myStack.back();
        myStack.pop_back();
        cout << site->i << site->s << endl;
        i++;
    }
}

编译器错误:

ising_wolff.cpp:在函数“void testStack()”中: ising_wolff.cpp:373:17: 错误: 请求成员‘push_back’ ‘myStack’,它是非类类型‘std::vector()’ myStack.push_back(站点); ^ ising_wolff.cpp:380:30:错误:请求“myStack”中的成员“back”,该成员属于非类类型“std::vector()” 站点 *site = myStack.back(); ^ ising_wolff.cpp:381:17: 错误:请求“myStack”中的成员“pop_back”,该成员是非类类型 ‘std::向量()’ myStack.pop_back();

这些错误是什么意思?

以下是我浏览过的一些网站:

1) 创建对象并将其添加到向量中 https://stackoverflow.com/questions/15802006/create-objects-while-adding-them-into-vector

2) Push_back 在 C 中导致错误 https://stackoverflow.com/questions/2166321/push-back-causeing-an-error-when-using-vectors-in-c

3) 如何创建类对象的向量 http://www.cplusplus.com/forum/general/7950/


如何在 C++ 中创建类对象的向量?

从更简单的事情开始,这样你就能掌握窍门。

首先,创建一个原始整数向量:

#include <vector>
#include <iostream>
using namespace std;
int main(){
  vector<int> sites(5);
  sites.push_back(5);
  for(int x = 0; x < sites.size(); x++){
    cout << sites[x];
  }
  cout << endl;
  return 0;
}

编译它:

g++ -o test test.cpp

运行它:

./test
000005

以与上面类似的方式创建类对象的向量:

#include <iostream>
#include <vector>
using namespace std;

class Site {
public:
    int i;
};

int main() {
    vector<Site> listofsites;
    Site *s1 = new Site;
    s1->i = 7;
    Site *s2 = new Site;
    s2->i = 9;
    listofsites.push_back(*s1);
    listofsites.push_back(*s2);
    vector<Site>::iterator it;
    for (it = listofsites.begin(); it != listofsites.end(); ++it) {
        cout << it->i;
    }
    return 0;
}

哪个应该打印:

79
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C++ 中创建类对象的向量? 的相关文章

  • 如何从该 Voronoi 图数据中获取单元格字典?

    使用找到的voronoi delaunay图生成库在这个节目中 http sourceforge net projects mapmanager 这是基于 财富 最初的实施他的算法 http en wikipedia org wiki Fo
  • 为什么在 C# 中成员初始值设定项中不允许这样做,但在 VB.Net Me 中允许

    我正在将 VB Net 应用程序转换为 C 并注意到在 VB Net 代码中 有一个私有成员变量 它是使用Me像这样 Private m ClassA As New MyCollection Of ClassA Me 当我将其转换为 C 代
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次
  • 在桌面应用程序中,类库的连接字符串存储在哪里?我可以在app.config中使用吗?

    我是桌面应用程序开发的新手 目前正在使用分层架构 用户界面 DAL BLL 构建桌面应用程序 在 Web 开发中 我曾经将连接字符串存储在 web config 中 我的类库从那里访问它 请指导我在桌面应用程序中如何以及在何处存储 DAL
  • 使用 Selenium for C# 登录 Facebook

    我一直在使用 Selenium C 框架并尝试进行 facebook 登录 但没有任何运气 这是我到目前为止得到的 基于这篇文章 使用 Selenium 测试 Facebook Connect 应用程序 https stackoverflo
  • 基于 MS Bot Framework 中的响应分支对话框/表单

    我们正在尝试使用 MS Bot Framework 但尚未完全弄清楚如何实现此场景 我们有一个 LUIS 对话框 类型 它工作正常并且经过适当的培训 以常见的三明治为例 LUIS 意图寻找的基本内容是用户询问订单状态 如果问题中提供了订单号
  • Entity Framework 4.1 RC:Code First EntityTypeConfiguration 继承问题

    我尝试使用通用的 EntityTypeConfiguration 类来配置所有实体的主键 以便每个派生的配置类不会重复自身 我的所有实体都实现一个公共接口 IEntity 它表示每个实体必须有一个 int 类型的 Id 属性 我的配置基类如
  • async wait 在调用异步方法时返回 Task> 而不是 List

    我正在尝试了解 async wait 的用法 并且研究了一些博客文章 现在我已经编写了一个测试代码 但它没有按照我期望的方式工作 我有一个返回列表的方法 private List
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • Create CFrameWnd 给出了第一次机会异常——为什么?

    我正在尝试使用基于 CFrameWnd 的代码编写一个简单的 MFC 应用程序 该应用程序在可滚动窗口中绘制 下面的代码改编自 Prosise Programming Windows with MFC 第 2 版 第 89ff 页 当我在调
  • 简单的文档管理系统和API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • 使用互斥锁来阻止临界区外部的执行

    我不确定我的术语是否正确 但这里是 我有一个由多个线程使用的函数来写入数据 在注释中使用伪代码来说明我想要的内容 these are initiated in the constructor int data std atomic
  • 我应该使用多个 HttpClient 来进行批量异步 GET 请求吗?

    我有一个场景 我需要在尽可能短的时间内发出大量 GET 请求 想想大约 1000 个 我知道通常最好保留一个客户端并尽可能重用它 Create Single HTTP Client HttpClient client new HttpCli
  • double 类型的静态类成员的常量表达式初始值设定项

    在 C 11 和 C 14 中 为什么我需要constexpr在下面的代码片段中 class Foo static constexpr double X 0 75 而这会产生编译器错误 class Foo static const doub
  • 实体框架代理创建

    我们可以通过使用来停止在上下文构造函数中创建代理 this Configuration ProxyCreationEnabled false 在 EF 4 1 中创建代理有哪些优点和缺点 代理对于两个功能是必需的 延迟加载 导航属性在第一次
  • 编译器可以报告未知属性的错误吗?即使有范围?

    在N3291 7 6 1 3 5 属性语法和语义 decl attr grammar 关于如何属性是用我读过的源代码写的 使用一个属性范围令牌是有条件支持的 实现定义的行为 and For an 属性标记本国际标准中未指定 该行为是实现定义
  • 具有多种类型的 C# 泛型类型推断

    我有以下通用方法 用于将一种类型的输入对象序列化为超类型 如下所示 public string SerialiseAs
  • FakeItEasy 代理方法调用实际实现

    我正在尝试将对假对象的调用代理到实际的实现 这样做的原因是我希望能够使用 Machine Specifications 的 WasToldTo 和 WhenToldTo 它们仅适用于接口类型的伪造 因此 我正在执行以下操作来代理对我的真实对

随机推荐

  • 无法从数据帧列表中获取索引位置

    我试图通过使用 python 中的内置方法索引从数据帧列表中获取数据帧的位置 我的代码如下 df1 pd DataFrame 1 2 3 df2 pd DataFrame 4 5 6 df3 pd DataFrame 7 8 9 dfs d
  • Google Glass Android Studio Gradle 问题

    我正在尝试使用 Android Studio 0 5 4 构建我的第一个 Google Glass 应用程序 但我收到构建错误 Error Module TestApplication TestApplication platform Go
  • 保证表值函数结果的顺序

    PREMISE 应用程序代码无法更改 条件非常具体 我正在寻找一些非书本上的东西 如果可以的话 这是最后的解决方法 我有一个表值函数 内联 可以生成 2 到 7 条记录 有时可能只有 1 个或最多 15 个 但很少 该函数仅由应用程序以这种
  • 特定值的固定颜色

    我正在尝试制作温度图 一切正常 但我不知道如何拥有固定的调色板 其实我有这个 rgb palette lt colorRampPalette c blue green yellow orange red space Lab image pl
  • 如何在java中改变我的框架?

    假设有一个按钮 如果您单击该按钮 则会出现一个新框架 依此类推 The setVisible true 函数用于显示框架 创建所需框架的对象并调用此函数 像这样的东西 The applications first or the main f
  • 打印 Mnesia 表的最佳方式

    我尝试了这个代码片段 print next Current gt case mnesia dirty next muppet Current of end of table gt io format n ok Next gt Muppet
  • 缺少 HttpClient 的依赖项

    我在 Java 桌面应用程序中使用 HttpClient 我已经添加httpclient 4 0 1 jar and httpmime 4 0 1 jar到构建路径 但我收到错误 无法解析类型 org apache http HttpRes
  • 使用标识符或 url 获取 Facebook 群组 ID

    我想通过使用 URL 或特定标识符来获取 Facebook 群组 ID For ex http www facebook com groups chennaifoodies http www facebook com groups chen
  • $.ajax仅在放置alert()时才起作用

    我尝试将内容加载到之前使用 AJAX 加载的内容中 我把代码 使用负载 jQuery contentpage on submit loginform my function contentpage load logincheck jsp a
  • 解析模型后,Redland RDF 中 RDF 节点的生命周期?

    我正在解析 RDF model 使用librdf parser parse string into model 然后我保留librdf model但释放librdf parser 在我看来 模型中的节点似乎也消失了 那么一生会做什么雷德兰R
  • 不使用 webpackJsonp 编译 Webpack typescript

    是否可以使用webpack进行打包而不使用webpack模块加载 我有一个可以使用 webpack 的所有内容的应用程序 在这个应用程序旁边我有一个小的打字稿文件test ts应该被编译 缩小等 但是输出应该是一个简单的js文件 没有被包装
  • iPhone应用程序启动时间指南[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请指出 iPhone 应用程序启动时间指南 我发现有大约 24 秒的硬性限制 如果应用程序当时未启动
  • 读取EDI格式文件

    我是 EDI 新手 我有一个问题 我读到 通过查看 ISA 行的最后 3 个字符 您可以获得有关 EDI 格式的大部分信息 如果每个 EDI 都使用换行符来分隔实体 那么这很好 但我发现许多都是单行文件 其中使用任意数量的字符作为换行符 我
  • 使用 pandas apply 时的异常处理

    我可以使用 series str extract 从 pandas 系列中提取子字符串 ds pd Series 1A apple 1B pear 3C orange grape ds str extract d 1 expand Fals
  • Broom.mixed exp 模型预测

    我想请求一些帮助来绘制我的模型的预测值以及 lmer 估计生成的方程 所以 我得到的数据是不同老鼠在不同日期的质量体积 每只老鼠都有不同的时间点来测量该体积 那么 我使用的模型是 m1 lt lmer lVolume Country Day
  • AWS Lambda - NAT 网关互联网访问导致超时

    我有一个 AWS Lambda 函数 检查 Redis Elasticache 实例 如果在缓存中未找到该项目 则转至 Google Places API 服务 Redis 实例位于私有子网 因此 为了获取它 我添加了 VPC 和实例所在的
  • Android:ping:icmp 打开套接字:不允许操作

    是否可以在没有 root 访问权限的情况下在 Android 4 3 上执行 ping 有些人建议 sudo chmod u s system bin ping http ben goodacre name tech Ping icmp o
  • @media Chrome 下打印文字阴影

    当我添加 css 规则时 文字阴影 对于未显示在其中的文本 媒体打印 另存为PDF 并且它不适用于特殊情况Chrome 它在 IE11 下工作得很好 但在 Chrome 下 不行 这让我非常非常失望 这是简单的文本阴影示例 item tex
  • 仅在添加预先存在的数据后才始终删除闪亮的 CRUD 应用程序中的第一行

    我被困住了 需要帮助 我正在按照这个要点工作https gist github com gluc d39cea3d11f03542970b https gist github com gluc d39cea3d11f03542970b 基本
  • 如何在 C++ 中创建类对象的向量?

    我正在尝试使用 C 中的向量创建一个简单的堆栈 这是代码 include