- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我第一次使用大部分代码。在下面的这个 instancepool.h 文件中,我收到错误消息,提示我不能使用 vector(第 14 行)或将 instance& 作为返回类型(第 20 行)。尽管我已经包含了它们,但它似乎无法使用实例对象。
#ifndef _INSTANCEPOOL_H
#define _INSTANCEPOOL_H
#include "instance.h"
#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>
using namespace std;
class InstancePool
{
private:
unsigned instances;//total number of instance objects
vector<instance> ipp;//the collection of instance objects, held in a vector
public:
InstancePool();//Default constructor. Creates an InstancePool object that contains no Instance objects
InstancePool(const InstancePool& original);//Copy constructor. After copying, changes to original should not affect the copy that was created.
~InstancePool();//Destructor
unsigned getNumberOfInstances() const;//Returns the number of Instance objects the the InstancePool contains.
const instance& operator[](unsigned index) const;
InstancePool& operator=(const InstancePool& right);//Overloading the assignment operator for InstancePool.
friend istream& operator>>(istream& in, InstancePool& ip);//Overloading of the >> operator.
friend ostream& operator<<(ostream& out, const InstancePool& ip);//Overloading of the << operator.
};
#endif
这是实例.h:
#ifndef _INSTANCE_H
#define _INSTANCE_H
///////////////////////////////#include "instancepool.h"
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
class Instance
{
private:
string filenamee;
bool categoryy;
unsigned featuress;
unsigned* featureIDD;
unsigned* frequencyy;
string* featuree;
public:
Instance (unsigned features = 0);//default constructor
unsigned getNumberOfFeatures() const; //Returns the number of the keywords that the calling Instance object can store.
Instance(const Instance& original);//Copy constructor. After copying, changes to the original should not affect the copy that was created.
~Instance() { delete []featureIDD; delete []frequencyy; delete []featuree;}//Destructor.
void setCategory(bool category){categoryy = category;}//Sets the category of the message. Spam messages are represented with true and and legit messages with false.//easy
bool getCategory() const;//Returns the category of the message.
void setFileName(const string& filename){filenamee = filename;}//Stores the name of the file (i.e. “spam/spamsga1.txt”, like in 1st assignment) in which the message was initially stored.//const string& trick?
string getFileName() const;//Returns the name of the file in which the message was initially stored.
void setFeature(unsigned i, const string& feature, unsigned featureID,unsigned frequency) {//i for array positions
featuree[i] = feature;
featureIDD[i] = featureID;
frequencyy[i] = frequency;
}
string getFeature(unsigned i) const;//Returns the keyword which is located in the ith position.//const string
unsigned getFeatureID(unsigned i) const;//Returns the code of the keyword which is located in the ith position.
unsigned getFrequency(unsigned i) const;//Returns the frequency
Instance& operator=(const Instance& right);//Overloading of the assignment operator for Instance.
friend ostream& operator<<(ostream& out, const Instance& inst);//Overloading of the << operator for Instance.
friend istream& operator>>(istream& in, Instance& inst);//Overloading of the >> operator for Instance.
};
#endif
此外,如果它有帮助,这里是 instance.cpp:
// Here we implement the functions of the class apart from the inline ones
#include "instance.h"
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
Instance::Instance(unsigned features) { //Constructor that can be used as the default constructor.
featuress = features;
if (features == 0)
return;
featuree = new string[featuress]; // Dynamic memory allocation.
featureIDD = new unsigned[featuress];
frequencyy = new unsigned[featuress];
return;
}
unsigned Instance::getNumberOfFeatures() const {//Returns the number of the keywords that the calling Instance object can store.
return featuress;}
Instance::Instance(const Instance& original) {//Copy constructor.
filenamee = original.filenamee;
categoryy = original.categoryy;
featuress = original.featuress;
featuree = new string[featuress];
for(unsigned i = 0; i < featuress; i++) {
featuree[i] = original.featuree[i];
}
featureIDD = new unsigned[featuress];
for(unsigned i = 0; i < featuress; i++) {
featureIDD[i] = original.featureIDD[i];
}
frequencyy = new unsigned[featuress];
for(unsigned i = 0; i < featuress; i++) {
frequencyy[i] = original.frequencyy[i];}
}
bool Instance::getCategory() const { //Returns the category of the message.
return categoryy;}
string Instance::getFileName() const { //Returns the name of the file in which the message was initially stored.
return filenamee;}
string Instance::getFeature(unsigned i) const { //Returns the keyword which is located in the ith position.//const string
return featuree[i];}
unsigned Instance::getFeatureID(unsigned i) const { //Returns the code of the keyword which is located in the ith position.
return featureIDD[i];}
unsigned Instance::getFrequency(unsigned i) const { //Returns the frequency
return frequencyy[i];}
Instance& Instance::operator=(const Instance& right) { //Overloading of the assignment operator for Instance.
if(this == &right) return *this;
delete []featureIDD;
delete []frequencyy;
delete []featuree;
filenamee = right.filenamee;
categoryy = right.categoryy;
featuress = right.featuress;
featureIDD = new unsigned[featuress];
frequencyy = new unsigned[featuress];
featuree = new string[featuress];
for(unsigned i = 0; i < featuress; i++) {
featureIDD[i] = right.featureIDD[i]; }
for(unsigned i = 0; i < featuress; i++) {
frequencyy[i] = right.frequencyy[i]; }
for(unsigned i = 0; i < featuress; i++) {
featuree[i] = right.featuree[i]; }
return *this;
}
ostream& operator<<(ostream& out, const Instance& inst) {//Overloading of the << operator for Instance.
out << endl << "<message file=" << '"' << inst.filenamee << '"' << " category=";
if (inst.categoryy == 0)
out << '"' << "legit" << '"';
else
out << '"' << "spam" << '"';
out << " features=" << '"' << inst.featuress << '"' << ">" <<endl;
for (int i = 0; i < inst.featuress; i++) {
out << "<feature id=" << '"' << inst.featureIDD[i] << '"' << " freq=" << '"' << inst.frequencyy[i] << '"' << "> " << inst.featuree[i] << " </feature>"<< endl;
}
out << "</message>" << endl;
return out;
}
istream& operator>>(istream& in, Instance& inst) { //Overloading of the >> operator for Instance.
string word;
string numbers = "";
string filenamee2 = "";
bool categoryy2 = 0;
unsigned featuress2;
string featuree2;
unsigned featureIDD2;
unsigned frequencyy2;
unsigned i;
unsigned y;
while(in >> word) {
if (word == "<message") {//if at beginning of message
in >> word;//grab filename word
for (y=6; word[y]!='"'; y++) {//pull out filename from between quotes
filenamee2 += word[y];}
in >> word;//grab category word
if (word[10] == 's')
categoryy2 = 1;
in >> word;//grab features word
for (y=10; word[y]!='"'; y++) {
numbers += word[y];}
featuress2 = atoi(numbers.c_str());//convert string of numbers to integer
Instance tempp2(featuress2);//make a temporary Instance object to hold values read in
tempp2.setFileName(filenamee2);//set temp object to filename read in
tempp2.setCategory(categoryy2);
for (i=0; i<featuress2; i++) {//loop reading in feature reports for message
in >> word >> word >> word;//skip two words
numbers = "";//reset numbers string
for (int y=4; word[y]!='"'; y++) {//grab feature ID
numbers += word[y];}
featureIDD2 = atoi(numbers.c_str());
in >> word;//
numbers = "";
for (int y=6; word[y]!='"'; y++) {//grab frequency
numbers += word[y];}
frequencyy2 = atoi(numbers.c_str());
in >> word;//grab actual feature string
featuree2 = word;
tempp2.setFeature(i, featuree2, featureIDD2, frequencyy2);
}//all done reading in and setting features
in >> word;//read in last part of message : </message>
inst = tempp2;//set inst (reference) to tempp2 (tempp2 will be destroyed at end of function call)
return in;
}
}
}
和instancepool.cpp:
// Here we implement the functions of the class apart from the inline ones
#include "instancepool.h"
#include "instance.h"
#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>
using namespace std;
InstancePool::InstancePool()//Default constructor. Creates an InstancePool object that contains no Instance objects
{
instances = 0;
ipp.clear();
}
InstancePool::~InstancePool() {
ipp.clear();}
InstancePool::InstancePool(const InstancePool& original) {//Copy constructor.
instances = original.instances;
for (int i = 0; i<instances; i++) {
ipp.push_back(original.ipp[i]);
}
}
unsigned InstancePool::getNumberOfInstances() const {//Returns the number of Instance objects the the InstancePool contains.
return instances;}
const Instance& InstancePool::operator[](unsigned index) const {//Overloading of the [] operator for InstancePool.
return ipp[index];}
InstancePool& InstancePool::operator=(const InstancePool& right) {//Overloading the assignment operator for InstancePool.
if(this == &right) return *this;
ipp.clear();
instances = right.instances;
for(unsigned i = 0; i < instances; i++) {
ipp.push_back(right.ipp[i]); }
return *this;
}
istream& operator>>(istream& in, InstancePool& ip) {//Overloading of the >> operator.
ip.ipp.clear();
string word;
string numbers;
int total;//int to hold total number of messages in collection
while(in >> word) {
if (word == "<messagecollection"){
in >> word;//reads in total number of all messages
for (int y=10; word[y]!='"'; y++){
numbers = "";
numbers += word[y];
}
total = atoi(numbers.c_str());
for (int x = 0; x<total; x++) {//do loop for each message in collection
in >> ip.ipp[x];//use instance friend function and [] operator to fill in values and create Instance objects and read them intot he vector
}
}
}
}
ostream& operator<<(ostream& out, const InstancePool& ip) {//Overloading of the << operator.
out << "<messagecollection messages=" << '"' << '>' << ip.instances << '"'<< endl << endl;
for (int z=0; z<ip.instances; z++) {
out << ip[z];}
out << endl<<"</messagecollection>\n";
}
这段代码目前也没有正确地写入文件,至少我敢肯定它有很多问题。我希望我的帖子不会太多,如果有任何帮助,我们将不胜感激。谢谢!
最佳答案
您创建了一个 Instance
类型,但正在尝试使用 instance
。案例很重要。
关于C++ HW - 定义类 - 头文件中有其他类问题对象的对象(超出范围?),(也重新定义运算符,读入读出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792991/
我不能解决这个问题。和标题说的差不多…… 如果其他两个范围/列中有“否”,我如何获得范围或列的平均值? 换句话说,我想计算 A 列的平均值,并且我有两列询问是/否问题(B 列和 C 列)。我只希望 B
我知道 python 2to3 将所有 xrange 更改为 range 我没有发现任何问题。我的问题是关于它如何将 range(...) 更改为 list(range(...)) :它是愚蠢的,只是
我有一个 Primefaces JSF 项目,并且我的 Bean 注释有以下内容: @Named("reportTabBean") @SessionScoped public class Report
在 rails3 中,我在模型中制作了相同的范围。例如 class Common ?" , at) } end 我想将公共(public)范围拆分为 lib 中的模块。所以我试试这个。 module
我需要在另一个 View 范围 bean 中使用保存在 View 范围 bean 中的一些数据。 @ManagedBean @ViewScoped public class Attivita impl
为什么下面的代码输出4?谁能给我推荐一篇好文章来深入学习 javascript 范围。 这段代码返回4,但我不明白为什么? (function f(){ return f(); functio
我有一个与此结构类似的脚本 $(function(){ var someVariable; function doSomething(){ //here } $('#som
我刚刚开始学习 Jquery,但这些示例对我帮助不大...... 现在,以下代码发生的情况是,我有 4 个表单,我使用每个表单的链接在它们之间进行切换。但我不知道如何在第一个函数中获取变量“postO
为什么当我这样做时: function Dog(){ this.firstName = 'scrappy'; } Dog.firstName 未定义? 但是我可以这样做: Dog.firstNa
我想打印文本文件 text.txt 的选定部分,其中包含: tickme 1.1(no.3) lesson1-bases lesson2-advancedfurther para:using the
我正在编写一些 JavaScript 代码。我对这个关键字有点困惑。如何在 dataReceivedHandler 函数中访问 logger 变量? MyClass: { logger: nu
我有这个代码: Public Sub test() Dim Tgt As Range Set Tgt = Range("A1") End Sub 我想更改当前为“A1”的 Tgt 的引
我正忙于此工作,以为我会把它放在我们那里。 该数字必须是最多3个单位和最多5个小数位的数字,等等。 有效的 999.99999 99.9 9 0.99999 0 无效的 -0.1 999.123456
覆盖代码时: @Override public void open(ExecutionContext executionContext) { super.open(executio
我想使用 preg_match 来匹配数字 1 - 21。我如何使用 preg_match 来做到这一点?如果数字大于 21,我不想匹配任何东西。 example preg_match('([0-9]
根据docs range函数有四种形式: (range) 0 - 无穷大 (range end) 0 - 结束 (range start end)开始 - 结束 (range start end st
我知道有一个UISlider,但是有人已经制作了RangeSlider(用两个拇指吗?)或者知道如何扩展 uislider? 最佳答案 我认为你不能直接扩展 UISlider,你可能需要扩展 UICo
我正在尝试将范围转换为列表。 nums = [] for x in range (9000, 9004): nums.append(x) print nums 输出 [9000] [9
请注意:此问题是由于在运行我的修饰方法时使用了GraphQL解析器。这意味着this的范围为undefined。但是,该问题的基础知识对于装饰者遇到问题的任何人都是有用的。 这是我想使用的基本装饰器(
我正在尝试创建一个工具来从网页上抓取信息(是的,我有权限)。 到目前为止,我一直在使用 Node.js 结合 requests 和 Cheerio 来拉取页面,然后根据 CSS 选择器查找信息。我已经
我是一名优秀的程序员,十分优秀!