C++ :: Checking Type With Iterators

Oct 13, 2013

Assuming I have a list of pointers to a generic type T:

#include <vector>
//...
list<T*> myList;

Now assuming I want to go on the list, and if T's type is matched to the type I'm looking for, then cast it to this type and do something. List shown here:

list<T*>:: const_iterator iter= myList.begin();
for(; iter!=myList.end(); ++iter){
if( typeid(*iter)==typeid(Something*)) //RUN-TIME ERROR
dynamic_cast<Something*>(*iter)->DoSomething();
}

how do I fix this run-time error?

View 1 Replies


ADVERTISEMENT

C/C++ :: Data Type Checking For Integer

Jan 22, 2014

Ok so I have this simple program that gets input from a user. I just want to put in a line of code to make sure that hte user can't type in something like "pizza" , I want to make it say that if the user puts in something that is NOT a number they will get a error back saying "Wrong! try again!" Here is my code :

#include <iostream>
using namespace std;
//Summation Program
//Function Prototypes
int get_num();
void compute_sum(int num, int &sum);

[Code] ....

View 6 Replies View Related

C/C++ :: Data Type Checking With Pointers?

Sep 4, 2014

Assume the user has already put in the number of students (hence my variables numStuds, which will most likely be irrelevant to my problem).

So suppose I have this:

void inputStudentInfo(string *names, int *movies, const int numStuds) {
for(int i =0; i < numStuds; i++) {
cout << "Enter student name: "; getline(cin, names[i]); read_string(names[i]);

[Code] ....

Then I have my data type checking function:

//Data-Type Checking for strings
string read_string(string Sname) {
while(!cin.good())

[Code] ....

I am getting errors. I know the problem I think is that I am trying to data type check for a string made up of pointers* with just a string but I don't know how I am supposed to check this?

View 2 Replies View Related

C++ :: Deal With A Failed Input Stream And Type Checking Input?

Jun 17, 2014

deal with a failed input stream and type checking input?

I use:

cout << "
Enter a menu option: ";
while(!(cin >> menuGameMode))
{
cin.clear();
while (cin.get() != '
')
continue;
cout << "Enter a menu option: ";
}

Is this the "Best" way to do it?

EDIT: We're assuming input is expecting an int.

View 9 Replies View Related

C/C++ :: Getting Values For Iterators

Dec 25, 2014

I'm having problem getting the values for iterators. This code:

auto sum = inputVec.begin() + itLast;

gave this error: no match for 'operator+'

#include <iostream>
#include <vector>
#include <iterator>
using namespace std;
int main(){
vector<int> inputVec;

[Code] .....

View 4 Replies View Related

C++ :: Stream Iterators And Buffers?

Feb 6, 2013

Do stream iterators, such as std::istreambuf_iterator<char>, read a chunk of bytes internally, or do they read the stream one byte at a time?

Because I am thinking to write a BufferedFile class which uses an std::vector<char>.

View 3 Replies View Related

C++ :: Random Access Iterators

May 20, 2013

In this code:

vector<int> mydata(100);
mydata[2] = 999;

In statement 2 does that call the iterator to access the 3rd position and set its value to 999?

View 18 Replies View Related

C++ :: Std Container Iterators - Category?

Jun 15, 2014

When using an iterator with a std container (list / vector etc) sometimes it's possible to modify the container (e.g. delete an item) yet still carry on using the iterator - whereas in other cases, modifying the container immediately invalidates any open iterators on it. Is there an easy way to know which containers fall into which category? (or does it vary from one compiler to another?)

View 2 Replies View Related

C++ :: Segmentation Fault With Vectors And Iterators?

Oct 8, 2014

I am working on very large code.

View 4 Replies View Related

C/C++ :: Segmentation Fault With Vectors And Iterators?

Oct 9, 2014

I am working on very large code. I got a segmentation fault when trying to use one cpp file and tried to locate the error using Valgrind

Since the code is very large, I will only post a short portion of it below. I think the problem may come because triann is a vector defined in the header class, so triann[tri] is causing problems?

void ADe::aNe(int v, set<int> &nei)
{
for(set<int>::iterator iter = vert2tri[v].begin(); iter != vert2tri[v].end(); iter++)
{

[Code].....

View 4 Replies View Related

C++ :: Custom (readonly) Container And Iterators?

Jul 5, 2012

I'm working on writing some classes around a ROM hardware addon card. The classes expose the data on the ROM as a container with iterators, much like a vector or a list.

The classes don't have any data themselves, since all the data is on the ROM.

I'm having some dillemma's as to how to approach/implement the classes. If you were to write somethign like this... Or were using something like this written by someone else.... How would you expect this to be done ?

1) Make all the member functions static, make a private constructor to prevent making instances. This works, but may look a bit weird...

Code:
for (auto it = RomTable::begin(); it != RomTable::end(); ++it)

2) expect users to make a (dummy) instance, then use it as a regular container. this might be a bit counter intuitive since the class has no datamembers.

3) create a single instance, expect users to use that everywhere. make the constructor inaccessible. Some C++ 'purists' might perceive this as global data and thus not a good solution ?

Additionally. Do I need to provide both a const_iterator and an iterator ? There's nothing to be modified, so I'm guessing an iterator isn't needed (?) Or will some STL stuff not work without an iterator ? I'm obviously not fussed about the STL functions that make changes to the container to not work (like sort, fill, swap...)

View 14 Replies View Related

C++ :: Custom STL Compatible Containers And Iterators?

Jul 18, 2012

So i made an STL compatible container.And to make this work I had to make my own iterator (derived from std::iterator).

What is the portable (if any) and "well behaved" thing to do in case of usage anomalies.such as iterating an iterator too far, or passing an invalid index to a operator[]

Looking at how VC++ does things in something like std::array or std::vector.

Code:

iterator_type& operator+=(difference_type offset)
{// increment by integer
#if _ITERATOR_DEBUG_LEVEL == 2
if (size < index + offset)
{// report error

[Code] .....

lots of names starting with underscores, so it's implementation specific. Is there even a "well behaved" thing to do ? Or is any such work always going to be compiler specific?

View 2 Replies View Related

C++ :: Graph Class - How To Provide Virtual Iterators

May 29, 2013

I have a 'Graph' class, which has derived classes for Adjacency Matrix and Adjacency List representations.

How do I provide iterators for traversing vertices and edges, when the iterator classes would have different implementations for the different derived classes ?

The following way is the only one I can think of, but seems quite cumbersome.

Code:
class Base {
public:
class BaseIterator {

};
virtual const BaseIterator& begin();
virtual const BaseIterator& end();

[Code] .....

Or is there a pattern for doing this that I'm not aware of ? Would composition be a better idea here compared to polymorphism ? I mean, I can think like..a Graph can 'have' several representation 'objects' within it.

All the involved classes are templates,not sure if that makes the situation different.

View 7 Replies View Related

C++ :: Vector Iterators Incompatible In Debug Mode

Jul 11, 2013

I get this error when i try to run this code for an inventory in debug mode in VS. But for some reason it works just fine in release mode.

void Push_Back_Item(Item *item){
for(int y = 0; y < InvSizeY; y ++)
for(int x = 0; x < InvSizeX; x ++){
auto Iter = ItemList.find(std::make_pair(x,y));
if(Iter != ItemList.end()){
item->SetDead(); // ERROR
}
}
}

This isnt the full code though but it still gives me the same error.

The only thing "item->SetDead()" does is to set a bool to true.

This is the map i get the iterator from
std::map<std::pair<int,int>,Item*> ItemList;

This have been bugging me for quite some time now.

View 4 Replies View Related

C :: Bit Checking - Stack Overflow

Sep 19, 2013

I usually check if a bit is set using:

Code: bit = (number >> n) & 1; where `n` is the bit I want to check...

But I came across a stackoverflow answer saying:

bit = number & (1 << x); will not put the value of bit x into bit unless bit has type _Bool (<stdbool.h>).

Otherwise, bit = !!(number & (1 << x)); will..

So why is this? why the double !?

View 5 Replies View Related

C :: Checking Whether A String Is Palindrome Or Not

Nov 4, 2013

Everything seems to be correct from my perspective. heres the program: Code: /*c program to check whether a string is palindrome or not*/

#include<stdio.h>
#include<string.h>

int main(void) {
char str[30];
int i,j,flag=0;

[Code] .....

View 1 Replies View Related

C :: How To Turn Up Error Checking On IDE

Dec 8, 2013

The reason being is that it says that my program is right

Code:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define NFlights 10
struct date {
int month;
int day;
int year;
int hour;
int minute;

[Code] ....

View 6 Replies View Related

C :: Language Syntax Checking

Jun 15, 2013

Q. In context of C language syntax checking, which of the following can be modeled using Finite Automata?

(A) Detecting proper termination of an instruction.
(B) Detecting balance of parentheses.
(C) Detecting initialization of a variable.
(D) None of the above.

View 4 Replies View Related

C++ :: Checking If Key With Modifier Pressed?

Jan 31, 2015

I am new to C++ , i want to know how to check if a key with modifier is pressed.

When I use GetAsyncKeyState() it gives me error identifier not found.

View 1 Replies View Related

C++ :: Checking For 3D Primitive Collisions

Aug 4, 2013

I think I may have found a new way of checking for 3d polygon collisions, but I'm not sure. The method involves...

1. finding the planes that the primitives lie on
2. finding the line where the planes intersect
3. if both polys have points on both sides of the line AND have points that overlap on the 1d space of the line, then they intersect.

I have some half done code testing this, and so far it seems to be sound and fairly fast. These are some average time-tests done on my machine for each part:

1. 30 microseconds (both)
2. 7 microseconds
3. TBD

View 5 Replies View Related

C++ :: Checking If A Program Is Running?

Jun 17, 2014

I have a question, how can I check if a program is running using c++? For example

if (notepad.exe is running) {
.... ..... ....

View 3 Replies View Related

C++ :: Checking For Deallocated Memory?

Jul 20, 2014

How would I go about checking for deallocated memory?

For example, let's take this into consideration:

// Unsigned 32-bit / 64-bit integer: uint32, uint64
uint32* Pointer = new uint32[ Size ];
uint64 MemAddr = ( uint64 ) Pointer;
delete[] Pointer;

The above code would proceed to create a new array, store it in a pointer and retrieve the memory address of the array before finally deleting the array.

So let's assume we re-build the pointer and try to access the now deallocated array:

Pointer = ( uint32* ) MemAddr;
Pointer[ 0 ] = 0;

Based on the above snippets of code, how would I check "Pointer" after rebuilding the memory to check if the rebuilt memory has actually been deallocated. Without a check we'd get an exception error.

A bit of detail on why I am trying this:

Before thinking up how to do this, I was storing the addresses in a list and check the list for the addresses to see if they existed or not. However this requires an O(n) search, which isn't exactly what I am wanting. So instead if I used a check for deallocation method, I can go for an O(1) time check and reduce the total time it would take to check for memory allocation/deallocation.

View 11 Replies View Related

C/C++ :: Checking For A Space In Scanf

Jan 23, 2014

I have created a prompt which prompts the user for an integer and I have set up a loop to check for if it is an integer or not. My "bug" is that a user can enter an "integer" and "space" and "enter" and it does not give any error and assumes that "All is FINE!". I have gotten the value from the ascii table of 'SPACE' and put it as a check in my parameter of while, but it does not work.

Here is my code:

int x, y, boolean, i;
char buff[256];
printf("Enter the first integer value: ");
scanf("%s", buff);
i = 0;
boolean = 0; //initializing our boolean var that will eventually decide if we have an error or not

[code]....

View 4 Replies View Related

C/C++ :: Checking Typename In Templates

Mar 6, 2014

Suppose you have a templated class, such as

template <typename T>
class Matrix {
// some stuff and some methods
};

and let's say that you have some methods that need to do some type-dependent stuff, like, for example,

template <typename T>
Matrix<T> Matrix<T>::transpose() const {
// get this->rowCount, this->columnCount
// create a Matrix that has rowCount amount of columns and columnCount amount of rows
// copy (*this)[j][k] to theMatrix[k][j] (for all of the entries in *this)
// if the entries are complex, take the complex conjugate of them all
}

Would it be good practice to check explicitly for the typename parameter (or is this, somehow, defeating the purpose of templates)? std::cout << "I know that this is a design question, but it needs to be asked... ";

View 1 Replies View Related

C/C++ :: Strtok And Null Checking?

Mar 1, 2015

I'm playing around with parts of code and am coming across some errors. Most of my concern is related to strtok(). I've used it before but with a char* named token. I used a while loop to continuously check whether token was equal to NULL. In the following code, however, there aren't any checks. I was wondering if that is why this code prints (null) while running. Also, I would like to know if it is possible to read input like this code attempts to do - assigning tokens to each variable one after the other.

The format of the input:

Zucchini, Squash, pound
Yellow, Squash, pound
Tomatoes, Ugly Ripe, each
#include <stdio.h>
#include <stdlib.h>

[code]....

View 3 Replies View Related

C++ :: Checking To See If Integer Is A Character

Feb 14, 2014

#include <iostream>
using namespace std;
int main(){
int x;
cout << "Enter character:";
cin >> x;

[Code] ....

If i type in:
+
How come it says that "this is not addition?

View 5 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved