#include <iostream> int ival1 int ival2=1 int summe /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main() {
#include <iostream> #include <initializer_list> using namespace std; void doSomething(std::initializer_list<int> list) { } int main() { doSomething({2,3,6,8}); return 0; }
I write a small piece of code like above. But I can not compile it successfully. I try it both with and without the line "using namespace std", but nothing worked.
The error list: Symbol 'initializer_list' could not be resolved
In order to test catching exceptions from an initializer list, I deliberately did bad practice by hard coding an argument to a ctor that would cause a std::bad_allocto be thrown. Obviously better practice is to send a variable, but that would cause a compile error, so I hard coded a value.
The program I wrote creates Prime Numbers up to a specified limit which is an argument to the ctor of type std::size_t. The program works fine IMO, using g++ in cygwin:
$ time ./PrimesExe Limit is 2000000 148933 Primes Created
real 0m1.210s user 0m1.123s sys 0m0.046s
Now when I send something invalid like a negative number or something too big for std::size_t, the program seems to run indefinitely, when compiled with g++ under cygwin. I haven't tested it yet on Linux.
However, if I do the same on VS2013 express, it takes about 15 seconds to print the expected caught exception message. I was not expecting it to take so ridiculously long compared to the reasonable amount of work involved in doing primes up to 2 million.
I have read up about what is involved in catching exceptions: stack unwinding, keeping track of what needs to be destroyed etc. But this is 1 object with 1 ctor argument, no Base classes or any other complications. So why such a long or indefinite amount of time?
This whole example is probably contrived, and I am wondering whether exceptions is the right tool for this - it is similar to the divide by zero problem, or could be considered a programming error to call a ctor with a bad argument?
Also, catching an exception thrown by an initalizer list seems a bit awkward in that one seems to have enclose the creation of the object and all subsequent uses of it (and any code in between ) in the same try block, otherwise it goes out scope. I suppose I could try to write a wrapper function that returns a smart pointer reference to a valid object, but I would have to test the validity of it's return too. That's the awkward part - there is probably a better way?
Are there any recommended ways of recovering from initializer list exception, that is, to allow the user to enter a new hopefully valid value and try to create the object again?
I working on an assignment that processes an array of structs. In the main function I am attempting to declare an array of Author structures with 3 elements. It is supposed to be initialized to set all of the string fields (the names and book titles) to "NONE", and the double fields (the prices) to zero. This is supposed to be done in one statement, not using loops. Here is what I have.
//prototype for function to print the content of array on screen void showInfo(Author a[], int size);
[Code] .....
I was under the impression that an array can only hold the values of one data type. So doubles and strings in the same array doesn't make sense to me. However, that's the example my teacher drew up. The error keeps telling me that there are too many initializer values.
Code: extended initializer lists only available with -std=c++11 or -std=gnu++11 that I belive is due to having initialized a class array in the constructor somewhat like this: Code: class xpto { public; xpto():num{25,25}{} int num[2]; };
Since the code I'm developing is not meant to be compiled only by me and I want to ensure there are no incompatibilities with other machines I would like to kow whats the best way to initialize the array that is not c++11 dependent.
Is there no way to do it directly on the constructor "pre-instructions" (don't know the correct designation for the initialization section)? or do I have to put the instructions on the constructor body.
class DataBase { // Change the connection path here to your own version of the database public SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;AttachDbFilename=|DataDirectory|UberDatabase.mdf;Integrated Security=True;"); public DataBase() { } }
And in the same namespace as this class I have a form that calls it like so:
DataBase dBase = new DataBase(); SqlCommand trythis = new SqlCommand("Register", dBase.con);
However, I'm getting the field initializer error on dBase.con. I'm not sure why, but when I call the database from another file (program.cs) it works fine this way.
I'm trying to get unique elements from a set but it prints for each item all the rest, for example if i have 3 items in a set it will print 6 instead of 3. I use this code:
for (set<string>::iterator i = mails.begin(); i != mails.end(); ++i) { cout << *i << endl; }
Is there any way to print just the unique items from a set ?
84484-37.96-Castor, Kathy 39050-69.68-Chandler, Ben 26183-70.84-Costello, Jerry
I have successfully read each element the id, grade and name into 3 separate array. Now i need to add a new student with an id and grade
How do i do this?
This is what I have.
int addStudent( int Iarray[], double dArray[], string sArray[], int newID, double newGrade, string newName, int size ) { char ready; int index; cout << endl; cout << "Enter new student ID number : ";
I have a question regarding the elements of an array. Suppose I have a 3 by 3 string array (char x[3][4] ) , and I initialize all the elements to x's , the array would then look like this :
xxx xxx xxx
I'm curious if there will be a value if I try to access and element outside the array. As I have to write a code to determine if I have reached the end of an array. The only way I can think of is to border the entire array with o's , making it look like this :
As far as I'm understand we have only access to .h files of elements of STL. So other words in MS VC 2010 we haven't opportunity to see exact implementation of elements of STL. Where I can find implementation of STL elements or substitute algorithm that do the same thinks like stack from stl
I'm writing a program with a class containing a private std::vector<bool>. I chose bool because the vector represents a 2D array (think grid) and I only need 2 states per cell. I kept it one-dimensional as this hardly complicates things.
My problem is that I don't know how to initialize the vector, i.e. fill it with 0's.
The grid's resolution is not known at compile time, so I imagine I have to set the size (and content) of the vector in the class constructor.
Here's what I have tried among several things:
Code: World::World(const u_short worldsize) { grid.reserve(worldsize * worldsize); // grid is the private vector; square dimensions. std::fill(grid.begin(), grid.end(), 0); std::cout << grid.size(); } The output is 0. Only std::vector::push_back seems to have an effect on size(), but judging by its description, it doesn't look like the right candidate to populate a vector with zeros. Correct me if I'm wrong.
Frankly I expected line 3 to set the vector's size.
Write the definition of a function reverse , whose first parameter is an array of integers and whose second parameter is the number of elements in thearray . The function reverses the elements of the array . The function does not return a value .
Code: void reverse(int a[], int num) { for ( int i=0; i <= num/2 ; i++){ int temp = a[i]; a[i] = a[num-i-1]; a[num-i-1] = temp; } }
This is supposed to be the answer but I'm not quite sure why this is. I understand everything up until the actual loop. For one, shouldn't "int i" be declared outside the loop (I thought perhaps this was an error in the solutions)?
The main thing that I do not understand is the conditional statement.
Code: i<=num/2;
I don't understand why the "num/2" is necessary here. Also I can't really remember but is there a command that actually reverses an array?
I want to get the starting index of structure elements, whoz id are 0,1,2,3 Like in below code col_data[0] (starting id=0) col_data[3] (starting id=1) col_data[5] (starting id=2) col_data[8] (starting id=3) Code:
Code:
typedef struct gg{ int id; int value; }
[code]....
How can i skip remaining loop iterations when it get that index and will go back to loop again for getting next element index?
My goal is to copy only the elements of string 2 that are equal to string 1 into a new string. I tested this idea with an array of integers and it worked, but didn't work for the strings.
Code:
#include<stdio.h> main() { int scan1; char arr1[40] ; char arr2[40] ; char arr3[40] = {'_',.....,'_'}; /*for sake of brevity with post*/ }
Why is it that in the STL it is standard to indicate a sequence of elements in a container by a begin iterator that points to the first element and an end iterator that points to one past the last element?