C++ :: Changing Class Type Of A Vector Element?
Aug 16, 2014
I am programming a 2-D platformer video game. The stages are composed of an array (really a vector) of 16x16 px^2 tiles. I have defined a base class "Tile" and several derived classes, e.g., "Ramp", "Door", etc., which have their own attributes. The idea is that upon entering a room, the program will load all of the necessary tile data for that room into a vector. So, I have a vector that looks like: vector <Tile*> room_tiles, and resize it based on the total number of tiles in the room: room_tiles.resize(Tile_Count). I then want to read in certain info from the data file containing all of the tile information for that room. For example, if the data file says Tile 5 should be a ramp, I want to change the 5th element of the room_tiles vector to the derived ramp class. This is really where I'm having trouble. I've worked with vectors of base and derived classes before, but those were always of indeterminate size and I always used something like: (Vector).push_back(new DerivedClass()) to specify the derived class of that element. The problem is that that method only seems to work if you are appending elements to the end of a vector.
how I can do this?
View 7 Replies
ADVERTISEMENT
Apr 27, 2013
I'm having some problems with changing an array of numbers of type char to type int. Every time i try to sum 2 array indexed values it returns some letter or symbol. Also, if i change the type of the array in the functions the compiler gives me an error message. I would also like to add that the problem requires that the first two arrays be char so each individual number gets assigned to a different value.
My current code is:
Code:
#include <iostream>
void input(char a[], char b[], int& size_a, int& size_b);
void convert(char a[], int size);
void reverse(char a[], int size);
void add(char a[], char b[], int c[], int size);
int main()
[Code]....
View 4 Replies
View Related
Dec 21, 2013
how to convert an element of int type of an array to char type?
View 2 Replies
View Related
Feb 13, 2013
I am an IT student currently learning linked list. I have a problem with my code here. After I call addFront() my list doesn't change when I display it. How do I somewhat change/fill my list without changing the function type? I know it works on pointers still messed up with linked list.
Code:
typedef struct node *nodeptr;
struct node{int item;
nodeptr next;};
typedef nodeptr List;
}
[code]....
View 3 Replies
View Related
May 3, 2013
I am storing info in a vector but I want to store certain info at a particular index. I am new to using vectors and am unsure about have to do this. I am aware of the insert method but am confused on how to use it to store at a particular index.
View 1 Replies
View Related
Sep 6, 2014
I am trying to pop the element on a vector off and return its value at the same time
vector.push_back();
Unfortunately that code only removes that element from the vector it does not return it
Is the only way to get the element and destroy it is to do this?
vector.back();
vector.pop_back();
View 1 Replies
View Related
Aug 4, 2013
How to access an element of the point3f vector. E.g. :
int main() {
vector<Point3f> a;
a.push_back(Point3f(0,0,0);
a.push_back(Point3f(0,0,1);
//print first x,y,z element
cout<<a[0]<<endl;
[Code] ...
But it doesn't work firstly because it says can't use typename i.e. <float>
View 8 Replies
View Related
Sep 22, 2014
pop_back just returns void, so I just can't use that?
erase is okay but it doesn't return anything....
Do I use a combination of both?
View 2 Replies
View Related
Mar 3, 2014
I am trying to set a variable of type char equal to an element in an array of characters. For example:
char data[4] = "x+1";
char element;
element = data[2];
This seems like a logical progression from number arrays, but when I print both element and data[2], I get data[2] as expected, but element gives a different character every time (I assume a garbage value).
View 5 Replies
View Related
Nov 22, 2013
How could I search a vector element with multiple strings
i.e. vector.at(i) = This is a test
How could I search that to look for the word "test" in that element?
View 7 Replies
View Related
Mar 6, 2014
Consider I have a vector of strings and then I use an istringstream to read each word of each element in the vector, why do I nescessarily use an istringstream?
This is the code that does what I just described (I think)..
Code:
for(auto &elem : svec) {
istringstream strm(elem);
while (strm >> word)
//Magic
}
What would be the equivalent of using something else than an istringstream in this scenario and how does the istringstream work?
View 7 Replies
View Related
Apr 20, 2014
I'm having a problem filling a vector from a file. Basically, it is adding an empty element at the end. I'm new to Qt and haven't worked with file streams much so how to stop the stream before it adds the extra element.
void gui::get_data() {
mileage.clear();
QFile file(file_label->text() + ".txt");
QTextStream in(& file);
float m;
float g;
QString d;
[Code] ....
But, if I add another element to the vector and write that the file look like this.
//file after adding element
132654 0 02132014
132654 0 02132014
0 0
132998 22 02202014
I have it set to append at the moment so that is why the first line is repeated. I figure the problem is with if(in.atEnd()). I could fix it by deleting the last element right after adding it, but that seems like more of a hack than anything else.
View 3 Replies
View Related
Dec 8, 2014
I have a vector of int,
Code:
vector<int> row_numbers{1,2,3,4,5,6,7,8,9};
I want to sequentially remove one element at a time starting with the first. When the second element is removed, the first element needs to go back in. The sequence would look like
Code:
// original vector, row_numbers.size()=9
row_numbers{1,2,3,4,5,6,7,8,9};
// trimmed vector, row_numbers_trim.size()=8
[Code] .......
I have been working under the assumption that the best method would be to have row_numbers remain untouched and work on a copy. For each step in the sequence, you would create row_numbers_trim as a copy of row_numbers, and then remove an element from row_numbers_trim.
Code:
// position being removed
int counter = 0;
// copy original vector
row_numbers_trim = row_numbers;
// remove the first element from the copy
row_numbers_trim(row_numbers_trim.begin()+counter);
All you would have to do here is to increment counter in a loop. is there a better way?
View 8 Replies
View Related
Jul 15, 2013
I have N vectors which look like this:
[1→m] [m+1→2m] [2m+1→3m] [3m+1→4m] [4m+1→5m]..... [{(N-1)m}+1→Nm]
I want to select 1 element from each vector without duplication of any combinations. Essentially only when all combinations are done with 1st element in first vector ,only then it should move to next element in first vector.
Say i have elements :[123] [456] [789]
my combinations should be like
147
148
149
157
158
159
167
168
169
247....
Also, I cant have any repetitions and only after all combinations of 1 are done only then the loop has to move to next combination ie 247 combination and so on.
I tried NCK (n choose k) command but it gave me random combinations. How should i go about it with using minimal for loops?
View 2 Replies
View Related
May 27, 2013
Working on a console application and I am trying to figure out a way that allows users to enter an object property along with a value. For example
class Box{
public:
int height;
int width;
int length;
[Code] .....
For example if a user inputs "height" for Name and "13" as value I would like to find a way to change ab's height to 13. I want to make this work so that one can add another class and get the same functionality.
I tried looking online and I think maps are a way to do this and I tried doing that but I don't know how to proceed after/what code to write that would allow me to change it.
Note: I can't use if else statements or hardcoding to match the input to member as I want to make this extensible.
View 1 Replies
View Related
Jan 31, 2014
I changed the name of my Invoice class to 'Application' and then it generated errors such as follows
Error9'Invoice.Invoice' does not contain a definition for 'Documents' and no extension method 'Documents' accepting a first argument of type 'Invoice.Invoice' could be found (are you missing a using directive or an assembly reference?)c:userskeildocumentsvisual studio 2013projectsinvoiceinvoicewritefile.cs1840Invoice
Error3'Invoice.Invoice' does not contain a definition for 'Run'C:UsersKeilDocumentsVisual Studio 2013ProjectsInvoiceInvoiceProgram.cs1921Invoice
I have added my classes here, lso I have added the sln to this post.
using System;
using System.Collections.Generic;
using System.ComponentModel;
[Code].....
View 5 Replies
View Related
May 13, 2013
I need to create a class vector as a template and define operations on vectors.
And this is what I made.
#include<iostream>
using namespace std;
template<class T>
[Code].....
View 2 Replies
View Related
Nov 16, 2014
I have a program where I roll a die X number of times and need to print how many times it lands on each side. I tried to create an array in the class aDie that increments each time the corresponding number is rolled but when I go to call and print it in the main my out put is 0. I just picked how many times it landed on the side 4 just to see if it works and it doesn't.
#define ADIE_H
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
class aDie {
[Code] .....
View 3 Replies
View Related
Oct 7, 2014
How to initialize a static member of a class with template, which type is related to a nested class?
This code works (without nested class):
#include<iostream>
using namespace std;
struct B{
B(){cout<<"here"<<endl;}
};
template<typename Z>
[Code] ,....
View 1 Replies
View Related
Oct 12, 2013
Let me put it into the code snippet:
/**
This class build the singleton design pattern.
Here you have full control over construction and deconstruction of the object.
*/
template<class T>
class Singleton
[Code]....
I am getting error at the assertion points when i call to the class as follows:
osgOpenCL::Context *cxt = osgOpenCL::Singleton<osgOpenCL::Context>::getPtr();
I tried commenting assertion statements and then the debugger just exits at the point where getPtr() is called.
View 7 Replies
View Related
Nov 18, 2013
I'm working on a program where I have a vector full of <myClassType> structs.
I'm trying to insert items into a vector, searching first through the vector to make sure the value isn't already in the vector before inserting it. The "find" function isn't working properly.
I keep getting C2678 "binary '==': no operator found which takes a left-hand operand of type "myClassType" or there is no conversion errors in Visual Studio 2010.
I know it's something having to do with the find function and my iterators, but I can't, for the life of me, figure out what it is.
I've tried switching to const_iterators, but I get the same error message.
void foo::insert(const myClassType& en) {
vector<myClassType>::iterator it;
vector<myClassType>::iterator it1;
it = find(Table.begin(), Table.end(), en.memberOne);
[Code] .....
View 3 Replies
View Related
Apr 15, 2013
If I have an array of some class, and that class has const members, is there some way I can call a custom constructor on elements of the array?
I can't seem to reinitialize an element in foos in the example below. A thread on stack overflow mentioned the copy constructor show allow it, but I get "no match for call to '(Foo) (Foo&)'" when I try it.
Code:
class Foo {
public:
Foo();
Foo(int x, int y);
[Code] .....
View 4 Replies
View Related
Feb 3, 2013
I'm trying to template the return type for this function (component), I've looked around for example code but there doesn't seem to be any exactly like what I want.
Entity.hpp
class Entity {
public:
Entity();
unsigned int id = 0;
Component& addComponent(std::string);
[Code] ....
Error : 'ent1.component<HealthComponent>' does not have class type
View 2 Replies
View Related
Nov 30, 2013
I am trying to pass a class as a type to a template class. This class's constructor needs an argument but I cannot find the correct syntax. Is it possible?
Here is an example of what I described above. I did not compiled it, it is for illustrative purpose only. And of course argument val of the myData constructor would be doing something more useful than simply initializing an int....
template <class T>
class templateClass {
templateClass() {};
[Code]....
My real code would only compile is I add the myData constructor:
myData () {};
and gdb confirmed that it is this constructor that get called, even with dummy(4).
View 4 Replies
View Related
Feb 1, 2013
I am adding int type into vector called "vi" several times like this.
std::vector<int> vi;
void addFunc(int *a, int cnt) {
vi.erase(vi.begin(), vi.end());
vi.clear();
for(int i=0; i<cnt; i++)
vi.push_back(a[i]);
}
and I call the addfunc N times every sec.
And sometimes it has runtime error on vi.push_back line.
(called stack says "_CrtIsValidHeapPointer")
View 5 Replies
View Related
Jun 26, 2014
How do I compare a string vector against an enumerated type? My code so far is:
void convertToLastFirst(vector<string>&names){
enum NameFormat{FIRST, LAST};
for (size_t i = 0; i < names.size(); i ++){
if (names[i] FIRST){
names[i] = LAST;
}
}
}
View 1 Replies
View Related