Re: Looking to write bitsets to a basic_string
{ Quoted clc++m banner removed. -mod }
CSAWannabe napsal:
I've got a vector of bitsets with 10 bits in each bitset like this:
std::vector<std::bitset<10> > m_vctBitSets;
std::bitset<10> bsBitSet = 0xF0;
m_vctBitSets.push_back(bsBitSet);
I want to write the vector bitsets to a std::string.. so that there is
no gap between each bitset,i.e. the second bitset in the vector would
start on bit 11 in the std::string. I could also write them to a
buffer something like unsigned char [x]. But prefer to work with
std::string.
something like the following: I know its not right.. but it gives you
the idea of what I want to do..
std::ostringstream ss;
for (unsigned int i=0; i<m_vctBitSets.size(); i++)
{
std::bitset<10> bitSet = m_vctBitSets[i];
ss.write((const char*)&bitSet, sizeof(m_vctBitSets[i]));
}
std::string strBitset = ss.str();
How do you do this correctly.. using any method available in C++..
please help!
#include <iostream>
#include <bitset>
#include <vector>
#include <iterator>
typedef
std::bitset<10> BS;
typedef
std::vector<BS> VBS;
int main()
{
VBS vbs;
vbs.push_back(BS(1234567));
vbs.push_back(BS(2389745));
std::copy(vbs.begin(), vbs.end(),
std::ostream_iterator<BS>(std::cout));
}
If you need write to string, use writing to std::ostringstream.
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]