Search Results

Search found 2886 results on 116 pages for 'std'.

Page 100/116 | < Previous Page | 96 97 98 99 100 101 102 103 104 105 106 107  | Next Page >

  • "error: Expected a type, got 'classname'" in C++

    - by Bay
    Using the following code: template <typename T> class node { [. . .] }; class b_graph { friend istream& operator>> (istream& in, b_graph& ingraph); friend ostream& operator<< (ostream& out, b_graph& outgraph); public: [...] private: vector<node> vertices; //This line I'm getting: error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Alloc> class std::vector’ error: expected a type, got 'node' error: template argument 2 is invalid On the indicated line. Node is clearly defined before b_graph which uses it - what have I done here?

    Read the article

  • Solving algorithm for a simple problem

    - by maolo
    I'm searching for an algorithm (should be rather simple for you guys) that does nothing but solve the chicken or the egg problem. I need to implement this in C++. What I've got so far is: enum ChickenOrEgg { Chicken, Egg }; ChickenOrEgg WhatWasFirst( ) { ChickenOrEgg ret; // magic happens here return ret; } // testing #include <iostream> using namespace std; if ( WhatWasFirst( ) == Chicken ) { cout << "The chicken was first."; } else { cout << "The egg was first."; } cout << endl; Question: How could the pseudocode for the solving function look? Notes: This is not a joke, not even a bad one. Before you close this, think of why this isn't a perfectly valid question according to the SO rules. If someone here can actually implement an algorithm solving the problem he gets $500 in cookies from me (that's a hell lot of cookies!). Please don't tell me that this is my homework, what teacher would ever give his students homework like that?

    Read the article

  • Is it possible to implement events in C++?

    - by acidzombie24
    I wanted to implement a C# event in C++ just to see if i could do it. I got stuck, i know the bottom is wrong but what i realize my biggest problem is... How do i overload the () operator to be whatever is in T in this case int func(float)? I cant? can i? Can i implement a good alternative? #include <deque> using namespace std; typedef int(*MyFunc)(float); template<class T> class MyEvent { deque<T> ls; public: MyEvent& operator +=(T t) { ls.push_back(t); return *this; } }; static int test(float f){return (int)f; } int main(){ MyEvent<MyFunc> e; e += test; }

    Read the article

  • What does the destructor do silently?

    - by zhanwu
    Considering the following code which looks like that the destructor doesn't do any real job, valgrind showed me clearly that it has memory leak without using the destructor. Any body can explain me what does the destructor do in this case? #include <iostream> using namespace std; class A { private: int value; A* follower; public: A(int); ~A(); void insert(int); }; A::A(int n) { value = n; follower = NULL; } A::~A() { if (follower != NULL) delete follower; cout << "do nothing!" << endl; } void A::insert(int n) { if (this->follower == NULL) { A* f = new A(n); this->follower = f; } else this->follower->insert(n); } int main(int argc, char* argv[]) { A* objectA = new A(1); int i; for (i = 0; i < 10; i++) objectA->insert(i); delete objectA; }

    Read the article

  • sending address of a variable declared on the stack?

    - by kobac
    I have a doubt concerning declaring variables, their scope, and if their address could be sent to other functions even if they are declared on the stack? class A{ AA a; void f1(){ B b; aa.f2(&b); } }; class AA{ B* mb; f2(B* b){ mb = b; //... } }; Afterwards, I use my AA::mb pointer in the code. So things I would like to know are following. When the program exits A::f1() function, b variable since declared as a local variable and placed on the stack, can't be used anymore afterwards. What happens with the validity of the AA::mb pointer? It contains the address of the local variable which could not be available anymore, so the pointer isn't valid anymore? If B class is a std::<vector>, and AA::mb is not a pointer anymore to that vector, but a vector collection itself for example. I would like to avoid copying all of it's contents in AA::f2() to a member AA::mb in line mb = b. Which solution would you recommend since I can't assign a pointer to it, because it'll be destroyed when the program exits AA::f2()

    Read the article

  • [C++] Trouble declaring and recognizing global functions

    - by Sarah
    I've created some mathematical functions that will be used in main() and by member functions in multiple host classes. I was thinking it would be easiest to make these math functions global in scope, but I'm not sure how to do this. I've currently put all the functions in a file called Rdraws.cpp, with the prototypes in Rdraws.h. Even with all the #includes and externs, I'm getting a "symbol not found" error at the first function call in main(). Here's what I have: // Rdraws.cpp #include <cstdlib> using namespace std; #include <cmath> #include "Rdraws.h" #include "rng.h" extern RNG rgen // this is the PRNG used in the simulation; global scope void rmultinom( double p_trans[], int numTrials, int numTrans, int numEachTrans[] ) { // function 1 def } void rmultinom( const double p_trans[], const int numTrials, int numTrans, int numEachTrans[]) { // function 2 def } int rbinom( int nTrials, double pLeaving ) { // function 3 def } // Rdraws.h #ifndef RDRAWS #define RDRAWS void rmultinom( double[], int, int, int[] ); void rmultinom( const double[], const int, int, int[] ); int rbinom( int, double ); #endif // main.cpp ... #include "Rdraws.h" ... extern void rmultinom(double p_trans[], int numTrials, int numTrans, int numEachTrans[]); extern void rmultinom(const double p_trans[], const int numTrials, int numTrans, int numEachTrans[]); extern int rbinom( int n, double p ); ... int main() { ... } I'm pretty new to programming. If there's a dramatically smarter way to do this, I'd love to know.

    Read the article

  • C++ template and pointers

    - by Kary
    I have a problem with a template and pointers ( I think ). Below is the part of my code: /* ItemCollection.h */ #ifndef ITEMCOLLECTION_H #define ITEMCOLLECTION_H #include <cstddef> using namespace std; template <class T> class ItemCollection { public: // constructor //destructor void insertItem( const T ); private: struct Item { T price; Item* left; Item* right; }; Item* root; Item* insert( T, Item* ); }; #endif And the file with function defintion: /* ItemCollectionTemp.h-member functions defintion */ #include <iostream> #include <cstddef> #include "ItemCollection.h" template <class Type> Item* ItemCollection <T>::insert( T p, Item* ptr) { // function body } Here are the errors which are generated by this line of code: Item* ItemCollection <T>::insert( T p, Item* ptr) Errors: error C2143: syntax error : missing ';' before '*' error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C2065: 'Type' : undeclared identifier error C2065: 'Type' : undeclared identifier error C2146: syntax error : missing ')' before identifier 'p' error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C2470: 'ItemCollection::insert' : looks like a function definition, but there is no parameter list; skipping apparent body error C2072: 'ItemCollection::insert': initialization of a function error C2059: syntax error : ')' Any help is much appreciated.

    Read the article

  • write a program that prompts the user to input five decimal numbers

    - by user312309
    This is the question. write a program that prompts the user to input five decimal numbers. the program should then add the five decimal numbers, convert the sum to the nearest integer,m and print the result. This is what I've gotten so far: // p111n9.cpp : Defines the entry point for the console application. // #include <iostream> using namespace std; double a, b , c , d , e, f; int main(int argc, char* argv[]) { cout << "enter 5 decimals: " << endl; cin >> a >> b >> c >> d >> e; f = a + b + c + d + e; return 0; } Now I just need to convert the sum(f) to the nearest integer, m and print the result. How do I do this?

    Read the article

  • c++ creating ambigram from string

    - by mike_hornbeck
    I have a task to implement "void makeAmbigram(char*)" that will print on screen ambigram of latin string or return something like 'ambigram not possible'. Guess it's just about checking if string contains only of SNOXZHI and printing string backwards. Or am I wrong ? I'm a complete noob when dealing with cpp so that's what I've created : #include <iostream> using namespace std; char[]words; char[]reversed; char[] ret_str(char* s) { if(*s != '\0') ret_str(s+1); return s; } void makeAmbigram(char* c) { /* finding chars XIHNOZS and printing ambigram */ } int main() { cin>>words; reversed = ret_str(words); makeAmbigram(reversed); return 0; } I can reverse string but how to check if my reversed string contains only needed chars ? I've found some function but it's hard or even imposible to implement it for greater amount of chars : http://www.java2s.com/Code/C/String/Findcharacterinstringhowtousestrchr.htm

    Read the article

  • How to implement tokenizer.rbegin() and rend() for boost::tokenizer ?

    - by Chan
    Hello everyone, I'm playing around with boost::tokenizer however I realize that it does not support rbegin() and rend(). I would like to ask how can I add these two functions to the existing class? This is from the boost site: #include <iostream> #include <string> #include <boost/tokenizer.hpp> using namespace std; using namespace boost; int main() { string str( "12/12/1986" ); typedef boost::tokenizer<boost::char_separator<char>> tokenizer; boost::char_separator<char> sep( "/" ); tokenizer tokens( str, sep ); cout << *tokens.begin() << endl; // cout << *tokens.rbegin() << endl; How could I implement this? return 0; }

    Read the article

  • Get class instance by class name string

    - by VDVLeon
    Hi all, I noticed the function Object.factory(char[] className) in D. But it does not work like I hoped it would work; it does not work ;) An example: import std.stdio; class TestClass { override string toString() { return typeof(this).stringof; // TestClass } }; void main(string[] args) { auto i = Object.factory("TestClass"); if (i is null) { writeln("Class not found"); } else { writeln("Class string: " ~ i); } } I think this should result in the message: "Class string: TestClass" but it says "Class not found". Does anybody know why this happens and how I could fix it ? Or do I need to make my own class factory. For example by make a class with a static array Object[string] classes; with class instances. When I want a new instance I do this: auto i = (className in classes); if (i is null) { return null; } return i.classinfo.create();

    Read the article

  • SHGetFolderPath

    - by user530589
    This code works for windows 7 but doesn't work for windows XP (outputs only part of startup folder path) #include <iostream> #include <shlobj.h> using namespace std; int main() { wchar_t startupFolder[1024]; HRESULT hr = SHGetFolderPath(0, CSIDL_STARTUP, 0, 0, startupFolder); if (SUCCEEDED(hr)) wcout << L"Startup folder = " << startupFolder << endl; else cout << "Error when getting startup folder\n"; getchar(); return 0; } output is: Startup folder = C:\Documents and Settings\Admin\ <- cursor is here. Newline is not provided. Also I have russian window xp. I think this is unicode issue. when I use wprintf I got: C:\Documents and Settings\Admin\???????? ..... Thanks. As a temporary solution: After SHGetFolderPath I call GetShortPathName then I get path in msdos style: C:\DOCUME~1\Admin\5D29~1\4A66~1\60C2~1 Not really beautiful solution, but at least that is a valid path.

    Read the article

  • How to set up a functional macro with parameters in C++?

    - by user1728737
    is there a way that I can make this work? Or do I need to use separate files? #include <iostream> // Necessary using namespace std; long double primary, secondary, tertiary; #define long double mMaxOf2(long double min, long double max) { return ((max > min) ? (max) : (min)); } #define long double mMaxOf3(long double Min, long double Max, long double Mid) { long double Mid = (long double mMaxOf2(long double Min, long double Mid)); long double Max = (long double mMaxOf2(long double Mid, long double Max)); return (Max); } int main() { cout << "Please enter three numbers: "; cin << primary << secondary << tertiary; cout << "The maximum of " << primary << " " << secondary << " " << tertiary; cout << " using mMaxOf3 is " << long double mMaxOf3(primary, secondary, tertiary); return 0; } This is the error that I am getting. |20|error: expected unqualified-id before '{' token|

    Read the article

  • C++ map performance - Linux (30 sec) vs Windows (30 mins) !!!

    - by sonofdelphi
    I need to process a list of files. The processing action should not be repeated for the same file. The code I am using for this is - using namespace std; vector<File*> gInputFileList; //Can contain duplicates, File has member sFilename map<string, File*> gProcessedFileList; //Using map to avoid linear search costs void processFile(File* pFile) { File* pProcessedFile = gProcessedFileList[pFile->sFilename]; if(pProcessedFile != NULL) return; //Already processed foo(pFile); //foo() is the action to do for each file gProcessedFileList[pFile->sFilename] = pFile; } void main() { size_t n= gInputFileList.size(); //Using array syntax (iterator syntax also gives identical performance) for(size_t i=0; i<n; i++){ processFile(gInputFileList[i]); } } The code works correctly, but... My problem is that when the input size is 1000, it takes 30 minutes - HALF AN HOUR - on Windows/Visual Studio 2008 Express (both Debug and Release builds). For the same input, it takes only 40 seconds to run on Linux/gcc! What could be the problem? The action foo() takes only a very short time to execute, when used separately. Should I be using something like vector::reserve for the map?

    Read the article

  • Mathematics errors in basic C++ program

    - by H Bomb1013
    I am working with a basic C++ program to determine the area and perimeter of a rectangle. My program works fine for whole numbers but falls apart when I use any number with a decimal. I get the impression that I am leaving something out, but since I'm a complete beginner, I have no idea what. Below is the source: #include <iostream> using namespace std; int main() { // Declared variables int length; // declares variable for length int width; // declares variable for width int area; // declares variable for area int perimeter; // declares variable for perimeter // Statements cout << "Enter the length and the width of the rectangle: "; // states what information to enter cin >> length >> width; // user input of length and width cout << endl; // closes the input area = length * width; // calculates area of rectangle perimeter = 2 * (length + width); //calculates perimeter of rectangle cout << "The area of the rectangle = " << area << " square units." <<endl; // displays the calculation of the area cout << "The perimeter of the rectangle = " << perimeter << " units." << endl; // displays the calculation of the perimeter system ("pause"); // REMOVE BEFORE RELEASE - testing purposes only return 0; }

    Read the article

  • C++ privately contructed class

    - by Nona Urbiz
    How can I call a function and keep my constructor private? If I make the class static, I need to declare an object name which the compiler uses to call the constructor, which it cannot if the constructor is private (also the object would be extraneous). Here is the code I am attempting to use (it is not compilable): I want to keep the constructor private because I will later be doing a lot of checks before adding an object, modifying previous objects when all submitted variables are not unique rather than creating new objects. #include <iostream> #include <fstream> #include <regex> #include <string> #include <list> #include <map> using namespace std; using namespace tr1; class Referral { public: string url; map<string, int> keywords; static bool submit(string url, string keyword, int occurrences) { //if(Referrals.all.size == 0){ // Referral(url, keyword, occurrences); //} } private: list<string> urls; Referral(string url, string keyword, int occurrences) { url = url; keywords[keyword] = occurrences; Referrals.all.push_back(this); } }; struct All { list<Referral> all; }Referrals; int main() { Referral.submit("url", "keyword", 1); }

    Read the article

  • when is a v-table created in C++?

    - by saminny
    When exactly does the compiler create a virtual function table? 1) when the class contains at least one virtual function. OR 2) when the immediate base class contains at least one virtual function. OR 3) when any parent class at any level of the hierarchy contains at least one virtual function. A related question to this: Is it possible to give up dynamic dispatch in a C++ hierarchy? e.g. consider the following example. #include <iostream> using namespace std; class A { public: virtual void f(); }; class B: public A { public: void f(); }; class C: public B { public: void f(); }; Which classes will contain a V-Table? Since B does not declare f() as virtual, does class C get dynamic polymorphism?

    Read the article

  • I just learned about C++ functions, can i use if statements onto functions?

    - by Sagistic
    What I am confused on is about the isNumPalindrome() function. It returns a boolean value of either true or false. How am I suppose to use that so I can display if its a palindrome or not. For ex. If (isNumPalindrome = true) cout "Your number is a palindrome" else "your number is not a palindrome." #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; } #include <iostream> #include <cmath> using namespace std; int askNumber(); bool isNumPalindrome(); int num, pwr; int main() { askNumber(); isNumPalindrome(); return 0; } bool isNumPalindrome() { int pwr = 0; if (num < 10) return true; else { while (num / static_cast<int>(pow(10.0, pwr)) >=10) pwr++; while (num >=10) { int tenTopwr = static_cast<int>(pow(10.0, pwr)); if ((num / tenTopwr) != (num% 10)) return false; else { num = num % tenTopwr; num = num / 10; pwr = pwr-2; } } return true; } } int askNumber() { cout << "Enter an integer in order to determine if it is a palindrome: " ; cin >> num; cout << endl; return num; }

    Read the article

  • CArray doesn't call copy constructors on memory reallocations, now what?

    - by MMx
    Suppose I have a class that requires copy constructor to be called to make a correct copy of: struct CWeird { CWeird() { number = 47; target = &number; } CWeird(const CWeird &other) : number(other.number), target(&number) { } void output() { printf("%d %d\n", *target, number); } int *target, number; }; Now the trouble is that CArray doesn't call copy constructors on its elements when reallocating memory (only memcpy from the old memory to the new), e.g. this code CArray<CWeird> a; a.SetSize(1); a[0].output(); a.SetSize(2); a[0].output(); results in 47 47 -572662307 47 I don't get this. Why is it that std::vector can copy the same objects properly and CArray can't? What's the lesson here? Should I use only classes that don't require explicit copy constructors? Or is it a bad idea to use CArray for anything serious?

    Read the article

  • Create a console from within a non-console .NET application.

    - by pauldoo
    How can I open a console window from within a non-console .NET application (so I have a place for System.Console.Out and friends when debugging)? In C++ this can be done using various Win32 APIs: /* EnsureConsoleExists() will create a console window and attach stdout (and friends) to it. Can be useful when debugging. */ FILE* const CreateConsoleStream(const DWORD stdHandle, const char* const mode) { const HANDLE outputHandle = ::GetStdHandle(stdHandle); assert(outputHandle != 0); const int outputFileDescriptor = _open_osfhandle(reinterpret_cast<intptr_t>(outputHandle), _O_TEXT); assert(outputFileDescriptor != -1); FILE* const outputStream = _fdopen(outputFileDescriptor, mode); assert(outputStream != 0); return outputStream; } void EnsureConsoleExists() { const bool haveCreatedConsole = (::AllocConsole() != 0); if (haveCreatedConsole) { /* If we didn't manage to create the console then chances are that stdout is already going to a console window. */ *stderr = *CreateConsoleStream(STD_ERROR_HANDLE, "w"); *stdout = *CreateConsoleStream(STD_OUTPUT_HANDLE, "w"); *stdin = *CreateConsoleStream(STD_INPUT_HANDLE, "r"); std::ios::sync_with_stdio(false); const HANDLE consoleHandle = ::GetStdHandle(STD_OUTPUT_HANDLE); assert(consoleHandle != NULL && consoleHandle != INVALID_HANDLE_VALUE); CONSOLE_SCREEN_BUFFER_INFO info; BOOL result = ::GetConsoleScreenBufferInfo(consoleHandle, &info); assert(result != 0); COORD size; size.X = info.dwSize.X; size.Y = 30000; result = ::SetConsoleScreenBufferSize(consoleHandle, size); assert(result != 0); } }

    Read the article

  • Allocating 32-bit integer arrays in 64-bit machines

    - by Shredderroy
    I have a 64-bit i7 machine. Suppose I allocate memory for n 32-bit integers. How many physical registers will actually be used in the allocation: n, or n/2? I tried to write the following simple programme to find out. #include <iostream> #include <cstdlib> using namespace std; int main (int argc, char *argv[]) { int a[4]; cout << &a[0] << "\t" << &a[3] << endl; cin.ignore (1); return 0; } // End main () The output is: 0018FA04 0018FA10 They seem further apart than they should be. Why aren't the addresses 04 and 07? And does this mean that the system is actually allocating four (or more) integers, instead of packing the four 32-bit integers into two 64-bit registers? Thanks in advance for your help.

    Read the article

  • Boost shared_ptr use_count function

    - by photo_tom
    My application problem is the following - I have a large structure foo. Because these are large and for memory management reasons, we do not wish to delete them when processing on the data is complete. We are storing them in std::vector<boost::shared_ptr<foo>>. My question is related to knowing when all processing is complete. First decision is that we do not want any of the other application code to mark a complete flag in the structure because there are multiple execution paths in the program and we cannot predict which one is the last. So in our implementation, once processing is complete, we delete all copies of boost::shared_ptr<foo>> except for the one in the vector. This will drop the reference counter in the shared_ptr to 1. Is it practical to use shared_ptr.use_count() to see if it is equal to 1 to know when all other parts of my app are done with the data. One additional reason I'm asking the question is that the boost documentation on the shared pointer shared_ptr recommends not using "use_count" for production code.

    Read the article

  • Something missing

    - by DHF
    The error of "} expected" appears at line 5. Why is that? I have included it at line 15. The error of "Declaration missing ;" appears at line 8. Why? There is ";" at the end of the line. #include<iostream> using namespace std; class PEmployee { public: PEmployee(); PEmployee(string employee_name, double initial_salary); void set_salary(double new_salary); double get_salary() const; string get_name() const; private: Person person_data; double salary; }; //line 15 int main() { PEmployee f("Patrick", 1000.00); cout << f.get_name() << " earns a salary of " << f.get_salary() << endl; return 0; } Newbie here, sorry for unclear question

    Read the article

  • Is there any way to output the actual array in c++

    - by user2511129
    So, I'm beginning C++, with a semi-adequate background of python. In python, you make a list/array like this: x = [1, 2, 3, 4, 5, 6, 7, 8, 9] Then, to print the list, with the square brackets included, all you do is: print x That would display this: [1, 2, 3, 4, 5, 6, 7, 8, 9] How would I do the exact same thing in c++, print the brackets and the elements, in an elegant/clean fashion? NOTE I don't want just the elements of the array, I want the whole array, like this: {1, 2, 3, 4, 5, 6, 7, 8, 9} When I use this code to try to print the array, this happens: input: #include <iostream> using namespace std; int main() { int anArray[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; cout << anArray << endl; } The output is where in memory the array is stored in (I think this is so, correct me if I'm wrong): 0x28fedc As a sidenote, I don't know how to create an array with many different data types, such as integers, strings, and so on, so if someone can enlighten me, that'd be great! Thanks for answering my painstakingly obvious/noobish questions!

    Read the article

  • What to throw in a C++ class wrapping a C library ?

    - by ereOn
    I have to create a set of wrapping C++ classes around an existing C library. For many objects of the C library, the construction is done by calling something like britney_spears* create_britney_spears() and the opposite function void free_britney_spears(britney_spears* brit). If the allocation of a britney_spears fails, create_britney_spears() returns NULL. This is, as far as I know, a very common pattern. Now I want to wrap this inside a C++ class. //britney_spears.hpp class BritneySpears { public: BritneySpears(); private: boost::shared_ptr<britney_spears> m_britney_spears; }; And here is the implementation: // britney_spears.cpp BritneySpears::BritneySpears() : m_britney_spears(create_britney_spears(), free_britney_spears) { if (!m_britney_spears) { // Here I should throw something to abort the construction, but what ??! } } So the question is in the code sample: What should I throw to abort the constructor ? I know I can throw almost anything, but I want to know what is usually done. I have no other information about why the allocation failed. Should I create my own exception class ? Is there a std exception for such cases ? Many thanks.

    Read the article

< Previous Page | 96 97 98 99 100 101 102 103 104 105 106 107  | Next Page >