C++ :: Should Use Vector Or Just Double Array

Dec 15, 2014

I am programming about some numerical problems. I know that vector supplies vector operations. But vector always allocate more memory (used when the size changes). My matrix or array never change size, and the vector operation is just +,-,dot,cross,distance

My question is that should I use vector, or simple double array with new & delete is enough for me?

View 6 Replies


ADVERTISEMENT

C++ :: Inputting Into Double-sized Vector Freezes?

Mar 27, 2013

Whenever the code reaches:

matrix[atoi(tmp[1].c_str())][atoi(tmp[2].c_str())] = strtod(tmp[3].c_str(), NULL);

The app just blocks. Could it be due to a lack of RAM (since its inside a massive loop and I'm currently using an old-ass pc with 1GB RAM) or is it bad programming? If I remove that line everything runs smoothly.

View 7 Replies View Related

C++ :: Using Vector Push Back Function To Output Contents Of Vector (similar To Array)

Feb 9, 2015

How to output vector contents using the push_back function. My program reads in values just fine, but it does not output anything and I've been stuck on why.

here is my code:

#include <iostream>
#include <array>
#include <vector>
using namespace std;
int duplicate( vector < int > &vector1, const int value, const int counter)

[Code].....

View 3 Replies View Related

C++ :: Getting A File Into A Double Array?

Dec 20, 2014

The assignment is to create a program that lets users reserve a spot on a plane either in coach or first class. I'm supposed to create a .txt file to use as the prices for different seats and while I have done that, I'm having trouble getting the file into a double array.

This is what I have so far.

//This program lets the user reserve airline tickets on a plane
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;

[Code]....

Once I have the file into a double array, I have to use that array to implement it into the seat prices. Such as if user chooses to sit in row 1 seat 1 it would be that price. Also the '#' means open seat and '*' means seat taken. O yea, under the "//Populating the double array" is me trying to see if a for statement or a nested for statement would work.

View 5 Replies View Related

C :: Convert Char Array To Double

Mar 6, 2015

How to convert char array into double?,i.e. store char array values into a single double variable. Below is the code that i'm working. Im extracting the value "2255.1682" from char array gpsdata1. I used while loop, extracted the value and stored in "myChar", but i want to store it in double variable "lat1".

Code:
#include <stdio.h>
#include <stdlib.h>
int main(){
unsigned char gpsdata1[]="$GPGGA,091310.000,2255.1682,N,11356.3605,E,1,4,1.62,164";
char myChar;
double lat1;

[Code] .....

View 5 Replies View Related

C++ :: Initializing Double Pointer Array?

Aug 1, 2013

How to initialize double pointer array..?

int (**aLines)[2];

View 3 Replies View Related

C++ :: Converting String Into Double Array

May 18, 2014

I am having a lot of trouble extracting values from a string into a double array.

I have a string that looks something like this: "asdf 1.320 1 234.43 5.00000 3"

All I want to do is extract the doubles and store them in an array of doubles.

View 8 Replies View Related

C++ :: Sorting Array With Double Bubble?

Feb 3, 2013

i wanted to sort an array with double bubble sort but it didnt work!

my code is this:

void doubleBubbleSort(int *array, int length) {
int i,j;
for(i=0; i<length--;i++) {
if(array[i]>array[i++])
for(j=i;j>=0&&(array[j]>array[j++]);j--)
std::swap(i,j);

[code].....

how to get time like 1.56 seconds,too!

View 3 Replies View Related

C++ :: Mesh Array Of Double Boost

Jul 11, 2012

I wanna create mesh Array using boost elements, that will be do the same that code below, but can accept numbers of double. Any boost array that give me needed functionality. It will be great that advised element has the same argument list. I mean

// [base,stride,bound)
// [0,2,4)

Or may be there are any opportunity modify this boost::multi_array_types::index_range in order do make it accept double...

1>------ Build started: Project: HP_A.1_d_, Configuration: Debug Win32 ------
1> Main.cpp
1>c:all myс++ha level 9solutionlevel 9hp_a.1_d_main.cpp(15): warning C4244: 'argument' : conversion from 'double' to '__w64 int', possible loss of data
1>c:all myс++ha level 9solutionlevel 9hp_a.1_d_main.cpp(15): warning C4244: 'argument' : conversion from 'double' to '__w64 int', possible loss of data
1>c:all myс++ha level 9solutionlevel 9hp_a.1_d_main.cpp(18): warning C4244: 'argument' : conversion from 'double' to 'unsigned int', possible loss of data
1>c:all myс++ha level 9solutionlevel 9hp_a.1_d_main.cpp(20): warning C4244: 'argument' : conversion from 'double' to 'unsigned int', possible loss of data
1>c:all myс++ha level 9solutionlevel 9hp_a.1_d_main.cpp(20): warning C4244: 'argument' : conversion from 'double' to 'unsigned int', possible loss of data
1> HP_A.1_d_.vcxproj -> C:all myс++HA level 9SolutionLevel 9DebugHP_A.1_d_.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Code:
#include <boostmulti_array.hpp>
#include <iostream>
typedef boost::multi_array_types::index_range range;

[Code]....

View 1 Replies View Related

C++ :: Byte Array To Double Conversion?

Dec 5, 2014

I'm trying to understand why a conversion from a byte array (unsigned char) to a double works when done one way and not antoher.

In the example code I test by hard coding an unsigned char array of the same bytes that the double consists of.

When I copy the bytes to a long long and cast to double the result is not the original double but if I use a struct the bytes can be set and the conversion happens.

Seems to me that both ways should work. I'd just like to know what is going on with the "struct way" that makes the conversion correct. I see in debugger that the bytes in memory are the same for piAsLong and u.bytes.

My compiler is VS 2012 and a long long and double are both 8 bytes (tested with sizeof). This is learning activity only.

Code:
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
union {
double d;

[code]....

View 6 Replies View Related

C :: Putting Float Numbers Into Double Array

Jan 29, 2014

So I have a double array, where I'm inputting float numbers to certain points in an array. Sometimes, the numbers that are printed out are completely different from what I put in.Here is the part of the code:

Code: .

while( token != NULL ) {
num = atof(token);
test[j][i] = num;
printf( "
%s, i is %d, j is %d
", token,i,j );
printf( "number is %f
value test of i,j is %f

[code]....

Why the float num prints out fine, but when put into an array becomes garbage?I'm taking string values from a csv file and turning them into floats, but no problems seem to crop up there.I reset i when appropriate and increment j when needed, so I don't think my problems are from incorrect array values (though they might be)

View 2 Replies View Related

C++ :: Possible To Use Data Type Double Or Float For Array?

Mar 9, 2014

Can you use data type double or float for an array? ie

double n[];
or
float a;
float m[a];

My code wont accept me changing the data type..will on accept int data type. I get the following error when I try to change the array to double or float..

3310E:C++vector.cpp[Error] invalid types 'double [1000][double]' for array subscript

View 4 Replies View Related

C++ :: Increasing Double Array Size Limit?

Jun 1, 2014

I am trying to make a double array, but I keep getting an error Segmentation fault (core dumped) when I make more than 105 elements in the array. I need to make 114 elements.

I am building my array with myarray[999] and increasing the number doesn't seem to do anything.

How can I store more elements in my array?

View 1 Replies View Related

C++ :: Function To Initialize Double Data Array Element To 0.0

Apr 25, 2013

ok here is the question: Write a function that will initialize a double data array element to 0.0 ?

View 4 Replies View Related

C++ :: Implementing Double Linked Lists As Array Of Pointers

Dec 27, 2012

I am studying/writing/ code for a future Advanced Data Structure class in C++; however I am not suppose to use STL, Templates and etc (the way I just code "kinda" of resembles what I have to use).

My application is suppose to read/analyze all integers contained in a text file of 5-digit integers (10000 - 99999).

For simplicity I am using the following input (or check the attached):

20007 20008 20009
20010 20010
20012 20012
20013
20014 20010
20015
20016 ....

So far, my code is not displaying/printing the lists separated by the first digit of these 5-digits integers. I am expecting it to display/print logically/similar to the following:

Output:

Results for input file numbers.txt:
27 total integers read from file

The 3 unique integers beginning with digit 1 were
18399 17342 19948

The 6 unique integers beginning with digit 3 were
39485 34710 31298 38221 35893 32791

The 4 unique integers beginning with digit 4 were
43928 49238 45678 43210

The 6 unique integers beginning with digit 6 were
64545 62987 66221 61777 66666 65432

The 2 unique integers beginning with digit 8 were
88888 86861

The 1 unique integer beginning with digit 9 was
98765

There were 22 unique 5-digit integers in the file.

The highest unique count in one list was 6 integers.

My code that will follow soon displays/prints only the LAST 5-digits "group" of integers (in this case the 5-digits starting with 3). I am not sure what's wrong with my code; perhaps I am not designing it correctly. May be my calls in it are on the wrong place or I have to write all integers and then traverse it and output it (if that's the case, I am not sure how).

My code follows:

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
const int MAX_CELLS = 10;
const int UNIQUE_FIVE_DIGIT = 5;

[Code] .....

View 10 Replies View Related

Visual C++ :: Error In Finding Lowest Double In Array

Oct 25, 2014

When I run the program, when it displays the lowest temtpature, it shows the address instead of the actual number.

Code:
/*********************************************
* File: b.cpp
* Description: Create a C++ program that declares a 100-element array of doubles representing temperature readings. Pass the array to a function to be partially filled by the user. When the user is done entering temperatures, the function should return the number of elements added to the array. The main function should then display the maximum and minimum temperatures in the array.
***********************************************/

#include <iostream>
using namespace std;
//prototypes
void getData(double arr[]);

[Code] ....

View 2 Replies View Related

C++ :: Unsigned Char Array - Assigning Values Converted From Double

Aug 3, 2014

I'm having a pretty weird problem. I've created an unsigned char array for an image buffer:

buffer_rgb = new unsigned char[_w * _h * 3];
memset(buffer_rgb, 0x0, sizeof(unsigned char)* _w * _h * 3);

And I add pixel color values to it like so:

buffer_rgb[i] = ((unsigned char)(col[0] * 255));
buffer_rgb[i + 1] = ((unsigned char)(col[1] * 255));
buffer_rgb[i + 2] = ((unsigned char)(col[2] * 255));

Where col is a 'vec4' struct with a double[4] with values between 0 and 1 (this is checked and clamped elsewhere, and the output is safely within bounds). This is basically used to store rgb and intensity values.

Now, when I add a constant integer as a pixel value, i.e.:

buffer_rgb[i] = ((unsigned char)255;

Everything works as it should. However, when I use the above code, where col is different for every sample sent to the buffer, the resulting image becomes skewed in a weird way, as if the buffer writing is becoming offset as it goes.

These two images illustrate the problem:

tomsvilans.com/temp/140803_render_skew.png
tomsvilans.com/temp/140803_render_noskew.png

You can see in the 'noskew' image all pixels are the same value, from just using an unchanging int to set them. It seems to work with any value between 0-255 but fails only when this value is pulled from my changing col array.

Whole function is here:

// adds sample to pixel. coordinates must be between (-1,1)
void Frame::addSample(vec4 col, double contrib, double x, double y) {
if (x < -1 || x >= 1 || y < -_aaspect || y >= _aaspect) {

[Code] .....

View 1 Replies View Related

C++ :: Array Or Vector Of Widgets?

Oct 1, 2014

I am trying to create an array of objects. I have to be abstract unfortunately (can't show you all my code), but this is the general gist of what I'm doing. Let's say these objects will be Widgets.

I would assume a vector of widgets would be better than an array due to it's flexibility. So if I use an array, let's say that my widjet is called MY_WIDGET and MY_WIDGET has a constructor of MY_WIDGET(int x, int y);

I have tried using an array to hold several widgets like this.

int i = 10; // obviously this number will be decided dynamically.
int x = 10;
int y = 10;
MY_WIDGET *array[i];
for(int x = 0; x < i; x++)
{
arr[x] = new MY_WIDGET(x,y);
y +=30; // moves the next widget down so they don't cover each other.
}

So now I have an array of objects or Widgets in this case. I'm only using widgets for this example because I want to display the use of a constructor.

So, while my compiler (MinGW) will let me do this, I still get an error at runtime because of the way I have dynamically sized my array 'arr[i]'.

The usual way of doing this, let's say for an int (see below), I can't apply for an object with a constructor requiring multiple parameters to construct it. Maybe I can't, I'm not sure.

int *x = 0;
x = new int[10];

This begs the question, should I be using a vector and if so, how do I dynamically push_back constructed objects into a vector without running into the same problem above. I have tried the below and get problems at compile time telling me that 'the base class is private within this context'. Not sure how to go about this but if I can understand how to dynamically create objects with constructors and add them to a vector or array I should be able to do this.

vector<MY_WIDGET> myvec;
MY_WIDGET the_widget(x,y);
myvec.push_back(the_widget);
y+=30;

View 4 Replies View Related

C++ :: How To Load WAV Files In Vector Or Array

Feb 28, 2013

How to load .wav files. Say there are several .wav files in a folder called "sounds" in "My Documents", what would be the steps on loading them in a vector or array. I'm thinking I should use a vector type of array to not worry for a fixed size.

View 3 Replies View Related

C++ :: Parsing Multidimensional Vector Into Array

Nov 30, 2013

For a rather complex and strange reason that I won't explain right now, I need to have this going on in my program.

class FVF{
private:
vector<vector<float>> data; //Contains fvf data for Direct3D stuff
public:

[Code].....

The FVF allows this Model3D class to also be compatible with file handling methods I've got, but here's the problem. D3D buffers require an array to feed them the information, and I know that for a single dimension of vector I can use vec.data(), how to do this for multiple dimensions.

I think the best Idea I've got so far is to set the vector within the Model3D class as a pointer, then I can union it with a float pointer... Once I can guarantee the information is correct and complete, manually transfer the contents of the vectors into the float pointer.. (The union is to reduce memory needed instead of having the data repeated in vectors and arrays)

how I could just pass these as arrays?

View 4 Replies View Related

C++ :: Signal Or Array Or Vector Shifting?

Dec 6, 2013

This can be done very easy, but I assume there is a better way to do it.

assume that I have a vector or a signal like

x=[1 1 1 1 1]

want to shift it by one unit to the right I have

x[n+1] gives

xn=[0 1 1 1 1 1]

and x[n-1] vies

xn=[1 1 1 1 0]

as you can see the length of the original vector or array does not change.

How can I solve this problem without specify the length of the output vector. The size of the output array should be the same as the input array, but I couldn't find a way to do it without adjusting the size.

View 2 Replies View Related

C++ :: How To Change 2 Dynamic Array Int Vector Class

Oct 29, 2014

// dynamic memory for 2D char array
char **board = (char**) calloc(column, sizeof(char*));
for(int i=0; i<column; i++)
board[i] = (char*) calloc(row, sizeof(char));
//for char 255 row and colum
char temp[255];
inputFile.getline(temp,255);

[Code]...

so i want to change into vector class like Vector<board>row;

View 8 Replies View Related

C++ ::  passing 2D Array Created Using Vector Container

Feb 10, 2014

I am trying to pass a 2D array called f (coming from a text file with 9 columns of numbers and 297,680 rows) that was created using the vector container in my main() to the function myfunc. I'm just trying to figure out how to pass the address of f in main() to myfunc(), so that myfunc() has arguments consisting of a pointer g (that accepts the address of f as an input) and an int.

This is the error from the compiler:
test_2d.cc: In function ‘int main()’:
test_2d.cc:47:25: error: cannot convert ‘std::vector<std::vector<double> >*’ to ‘double (*)[297680][9]’ for argument ‘1’ to ‘int myfunc(double (*)[297680][9], int)’
return myfunc(&f,count);
^
Here is my code:

#include <iostream>
#include <fstream>
#include <iomanip> //allow setprecision to get all the decimal points
#include <vector>
#include <string>

[Code] ...

View 5 Replies View Related

C++ :: Creating Vector Array And Reading A File

Apr 23, 2013

Creating a Vector Array + Reading a file ....

View 1 Replies View Related

C++ :: Creating (Composite) Vector Array Field?

Jan 3, 2013

In a numerically intensive code, I have a Cartesian vector class Vector3d which has the normal operator overloading and basic functions such as dot product, magnitude, etc. For simplicity, assume that it is not a templated class and its components are of type double.

I frequently need large 1-d arrays (e.g. stl vectors) of Vector3d. Two use-cases must be satisfied:

1) The trivial case in which the data are stored as stl vectors of Vector3d;

2) The more difficult case where the individual components are stored as stl vectors of double, and are not guaranteed to be contiguous in memory (so one cannot rely on "stride").

Assuming the array lengths are all identical, I'd like to be able to access both types in a single loop. The straightforward way for case 2) is to construct a temporary Vector3d from the three components (indexed with the loop index). However, I would prefer not to incur the overhead of the constructor.

Is it possible using template metaprogramming. Ideally I'd like a CompositeVector3d that inherits from Vector3d and is constructed with the component vectors, but can be dereferenced using the loop index in the same way as one would do with case 1.

I am not looking for the typical template metaprogramming utility of being able to operate on the entire array without explicit loops. I just want the syntactic "sugar" whereby CompositeVector3d and Vector3d act the same, plus the avoidance of the cost of the constructor. I am not averse to using an additional templated class (perhaps a Field or a View class) to access the basic storage in both case.

Is it possible to do this without using a full template metaprogramming utility?

View 1 Replies View Related

C++ :: Vector Of Void Pointers Which Point To Array Of Characters

Jan 21, 2014

This code work perfectly, as follows.

Code #A:

#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
typedef std::vector <void *> gr_vector_void_star;
gr_vector_void_star output_items;

[Code] .....

Output of above code #A:

char * sentence = "Angel";
for (int i=0; i < 5; i++)
{ out[i] = sentence[i]; } // error: invalid conversion from 'char' to 'char*' [-fpermissive]

It fails to compile with error message "invalid conversion from 'char' to 'char*'".

View 19 Replies View Related







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