<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[&amp;quot;Rohdatentyp&amp;quot;]]></title><description><![CDATA[<p>Guten,</p>
<p>welchen Datentyp (Objekt? STL-Container? Habe (noch) wenig Ahnung von C++ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ) nutzt man eigentlich für &quot;Rohdaten&quot; äquivalent zu einem char array in C?<br />
std::string eignet sich irgendwie nicht so wirklich..<br />
Habe mal bei boost::asio geschaut in welchen Datentyp die zB. als buffer nutzen - und - na klasse - boost::array. (oO?^^) ( <a href="http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial/tutdaytime1.html" rel="nofollow">http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial/tutdaytime1.html</a> )</p>
<p>std::vector wäre passend, allerdings fehlt mir hier irgendwie die simple &quot;Beschreibbarkeit&quot;.<br />
Wie würde man zB. folgenden Ausdruck mit C++ realisieren?</p>
<pre><code class="language-cpp">char bar[] = 
  &quot;Hallo, ich bin ein Test-String\n&quot;
  &quot;Really!\n&quot;
  &quot;\n&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/281399/quot-rohdatentyp-quot</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 16:42:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281399.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Feb 2011 09:38:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 09:38:52 GMT]]></title><description><![CDATA[<p>Guten,</p>
<p>welchen Datentyp (Objekt? STL-Container? Habe (noch) wenig Ahnung von C++ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ) nutzt man eigentlich für &quot;Rohdaten&quot; äquivalent zu einem char array in C?<br />
std::string eignet sich irgendwie nicht so wirklich..<br />
Habe mal bei boost::asio geschaut in welchen Datentyp die zB. als buffer nutzen - und - na klasse - boost::array. (oO?^^) ( <a href="http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial/tutdaytime1.html" rel="nofollow">http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial/tutdaytime1.html</a> )</p>
<p>std::vector wäre passend, allerdings fehlt mir hier irgendwie die simple &quot;Beschreibbarkeit&quot;.<br />
Wie würde man zB. folgenden Ausdruck mit C++ realisieren?</p>
<pre><code class="language-cpp">char bar[] = 
  &quot;Hallo, ich bin ein Test-String\n&quot;
  &quot;Really!\n&quot;
  &quot;\n&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2015043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015043</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 01 Feb 2011 09:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 09:45:42 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>nutzt man eigentlich für &quot;Rohdaten&quot; äquivalent zu einem char array in C?</p>
</blockquote>
<p>Was verstehst du unter Rohdaten? Auch C-Arrays können alle möglichen Typen beinhalten.<br />
Davon abgesehen ist std::vector genauso leicht beschreibbar wie ein C-Array, bietet aber darüber hinaus noch einige zusätzliche Features. Genau genommen IST ein std::vector ein (gekapseltes) C-Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015047</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 01 Feb 2011 09:45:42 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 09:47:08 GMT]]></title><description><![CDATA[<p>Warum sollte sich std::string nicht eigenen? Was willst du machen? Willst du vielleicht nur einen Stringstream?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015051</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Tue, 01 Feb 2011 09:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 09:49:46 GMT]]></title><description><![CDATA[<p>und wenn du die Zusatzfunktionen nicht brauchst, und zudem vorher noch ungefähr weißt, wie groß dein Array sein muss, kannst du auch gleich ein herkömmliches C++ Array benutzen.</p>
<p>Also für jegliche Art von Buffer nehm ich auch gern *<em>char <em>Buffer</em></em>.</p>
<p>Dagegen spricht eigentlich nix...</p>
<p>Was hast du denn für Daten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015053</guid><dc:creator><![CDATA[Aufpasser]]></dc:creator><pubDate>Tue, 01 Feb 2011 09:49:46 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 09:57:06 GMT]]></title><description><![CDATA[<p>Unter &quot;Rohdaten&quot; verstehe ich einfach ein byte-array in dem nicht nur Text steht. (Jaja, Texte sind auch nur Zahlen, aber std::string würde ich hier nicht sehr bezeichnend finden ;))<br />
Konkret möchte ich einen Datentyp den ich<br />
1. Nach seiner größe fragen kann (vector.size())<br />
2. Der mir einen nicht konstanten, also beschreibbaren char* liefern kann (vector.data())<br />
3. Den ich trotzdem möglichst einfach (gerade mit Text) beschreibben kann.<br />
(Hier fehlt irgendwie ein Konstruktor für vector oder sowas..)</p>
<p>Wobei das Stichwort stringstream gar nicht schlecht ist.. könnte man vielleicht einen stringstream auf vector.data() erstellen und den so beschreiben? Oder geht das noch einfacher?</p>
<p>@Aufpasser -&gt; Naja, ich komme sozusagen von C und möchte mich jetzt etwas in C++ reindenken und das möglichst ohne immer gleich den leichten, weil bekannten C Weg zu gehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015064</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 01 Feb 2011 09:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:10:25 GMT]]></title><description><![CDATA[<p>Antwort auf deine ursprüngliche Frage:<br />
Man verwendet für sowas std::vector&lt;char&gt; bzw. std::vector&lt;unsigned char&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015066</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:10:25 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:11:46 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Wie würde man zB. folgenden Ausdruck mit C++ realisieren?</p>
<pre><code class="language-cpp">char bar[] = 
  &quot;Hallo, ich bin ein Test-String\n&quot;
  &quot;Really!\n&quot;
  &quot;\n&quot;;
</code></pre>
</blockquote>
<p>Äh.<br />
So?</p>
<pre><code class="language-cpp">char const bar[] = 
  &quot;Hallo, ich bin ein Test-String\n&quot;
  &quot;Really!\n&quot;
  &quot;\n&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2015068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015068</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:11:46 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:19:40 GMT]]></title><description><![CDATA[<p>Also eigentlich spricht trotzdem nicht gegen char * mit einer Variablen als Längenangabe... Und eigentlich spricht auch nix gegen std::string..<br />
Nur weil der Inhalt vielleicht nicht unbedingt als Zeichen interpretiert werden sollte, heißt das ja nicht, dass man nicht trotzdem alles dort reinwerfen kann, was der char-Wertebereich hergibt. Zumindest soweit die Theorie...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015075</guid><dc:creator><![CDATA[Aufpasser]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:19:40 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:34:03 GMT]]></title><description><![CDATA[<p>std::string kann man aber über string.data() nicht beschreiben, der Datentyp soll einen char* und nicht nur einen const char* liefern können.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13960">@hustbaer</a><br />
Und jetzt das ganze noch mal mit std::vector&lt;char&gt; und ich bin glücklich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015082</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:34:03 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:43:48 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13960">@hustbaer</a><br />
Und jetzt das ganze noch mal mit std::vector&lt;char&gt; und ich bin glücklich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<pre><code class="language-cpp">#include &lt;iterator&gt;
#include &lt;vector&gt;

template&lt;class InputIterator, class OutputIterator&gt;
  OutputIterator strcpy ( InputIterator first, OutputIterator result )
{
  while (*first) *result++ = *first++;
  return result;
}

int main()
{
  std::vector&lt;char&gt; test;
  strcpy(&quot;Hallo Welt!\n&quot;,std::back_inserter(test));
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2015087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015087</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:44:00 GMT]]></title><description><![CDATA[<p>Vielleicht hast du ja auch einen konkreten Anwendungsfall, so dass man dir gezielter helfen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015088</guid><dc:creator><![CDATA[Aufpasser]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:45:27 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13960">@hustbaer</a><br />
Und jetzt das ganze noch mal mit std::vector&lt;char&gt; und ich bin glücklich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<pre><code class="language-cpp">#include &lt;iterator&gt;
#include &lt;vector&gt;

template&lt;class InputIterator, class OutputIterator&gt;
  OutputIterator strcpy ( InputIterator first, OutputIterator result )
{
  while (*first) *result++ = *first++;
  return result;
}

int main()
{
  std::vector&lt;char&gt; test;
  strcpy(&quot;Hallo Welt!\n&quot;,std::back_inserter(test));
}
</code></pre>
</blockquote>
<p>ach du heilige scheiße... nimm doch in gottes namen einfach <strong>char</strong>* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015090</guid><dc:creator><![CDATA[Aufpasser]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:45:27 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:53:20 GMT]]></title><description><![CDATA[<p>Aufpasser schrieb:</p>
<blockquote>
<p>ach du heilige scheiße... nimm doch in gottes namen einfach <strong>char</strong>* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Und dann baut er ein Speicherleck nach dem anderen, kommt mit der Übergabe an Funktionen nicht zurecht und und und...</p>
<p>Das alles um sich die obigen drei Zeilen Code zu sparen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015093</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:53:20 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:53:24 GMT]]></title><description><![CDATA[<p>Oder ich schreib mir ne Wrapper-Klasse für std::vector? Oder ich bleibe einfach bei --C <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015094</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:53:24 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 10:57:12 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Aufpasser schrieb:</p>
<blockquote>
<p>ach du heilige scheiße... nimm doch in gottes namen einfach <strong>char</strong>* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Und dann baut er ein Speicherleck nach dem anderen, kommt mit der Übergabe an Funktionen nicht zurecht und und und...</p>
<p>Das alles um sich die obigen drei Zeilen Code zu sparen?</p>
</blockquote>
<p>Ist aber schon interessant, dass du jedem unterstellst, mit C++-Arrays nicht ordentlich umgehen zu können und ihm stattdessen nahelegst ein Template zu programmieren....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015096</guid><dc:creator><![CDATA[Aufpasser]]></dc:creator><pubDate>Tue, 01 Feb 2011 10:57:12 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 11:09:57 GMT]]></title><description><![CDATA[<p>Warum wird eigentlich prinzipiell immer dazu geraten std::vector zu nehmen und nicht boost::array bzw std::array?</p>
<p>Seitdem ich boost::array entdeckt hab, sind 50% meiner STL-Vektoren aus dem Code geflogen. Meistens ist es deutlich effektiver ein bischen zu viel Speicher zu verbrauchen (der meistens ja auch noch auf dem Stack liegt ... und Vektor verschwendet meistens noch mehr) als permnanent Speicher zu allozieren.<br />
Mir ist jedenfalls ein guter Geschwindigkeitszuwachs aufgefallen.</p>
<p>Dass das Ganze natürlich nur Sinn macht, wenn man ungefähr den Speicherbedarf einschätzen kann ist klar ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015098</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 01 Feb 2011 11:09:57 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 11:37:14 GMT]]></title><description><![CDATA[<p>std::array kenne ich gar nicht.. das gibts?^^<br />
Kann das auf <a href="http://www.cplusplus.com" rel="nofollow">www.cplusplus.com</a> auch nicht finden..</p>
<p>Aber mal abgesehen davon..</p>
<pre><code class="language-cpp">class MyBuf
{
private:
  std::vector&lt;char&gt; m_vector;
public:
  MyBuf()
  {
  }
  MyBuf(std::string&amp; text)
  {
    *this = text;
  }
  MyBuf(char *text)
  {
    *this = text;
  }
  void operator = (std::string&amp; text)
  {
    m_vector.resize(text.length() + 1);
    strcpy(m_vector.data(), text.c_str());
  }
  void operator = (char *text)
  {
    std::string l_tmp = text;
    *this = l_tmp;
  }
  char *data()
  {
    return m_vector.data();
  }
  void resize(std::size_t size)
  {
    m_vector.resize(size);
  }
  std::size_t size()
  {
    return m_vector.size();
  }
};
</code></pre>
<p>Total ehm.. naja.. Klasse? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015100</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 01 Feb 2011 11:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 11:41:33 GMT]]></title><description><![CDATA[<p>Ich denke er meint std::tr1::array, was dann soviel ist wie boost::array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015102</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Tue, 01 Feb 2011 11:41:33 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 12:14:31 GMT]]></title><description><![CDATA[<p>Alternativ so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

const char * const txt = &quot;Hallo Welt!&quot;;

static size_t len(const char * c)
{
  size_t len;
  for (len = 0; *c++; ++len)
    ;
  return len;
}

int main()
{
  std::vector&lt;char&gt; buf(txt, txt + len(txt) + 1);
  std::cout &lt;&lt; &amp;buf[0] &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2015112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015112</guid><dc:creator><![CDATA[hav a break]]></dc:creator><pubDate>Tue, 01 Feb 2011 12:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 12:23:09 GMT]]></title><description><![CDATA[<p>Das ist einfach weil strlen() zu low wär <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015119</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 01 Feb 2011 12:23:09 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 12:56:32 GMT]]></title><description><![CDATA[<p>Wenn dir strlen() zu low ist, dann wären das noch zwei Möglichkeiten :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

std::vector&lt;char&gt; cstr2vec(const char * cstr)
{
  std::vector&lt;char&gt; vec;
  for (; *cstr; ++cstr)
    vec.push_back(*cstr);
  vec.push_back('\0');
  return vec;
}

int main()
{
  {
    const char anf [] = &quot;Hallo Welt!&quot;;
    const char end [] = &quot;&quot;;

    std::vector&lt;char&gt; buf(anf, end);
    std::cout &lt;&lt; &amp;buf[0] &lt;&lt; '\n';
  }
  {
    std::vector&lt;char&gt; buf(cstr2vec(&quot;Hallo Welt!&quot;));
    std::cout &lt;&lt; &amp;buf[0] &lt;&lt; '\n';
  }
}
</code></pre>
<p>Wenn du dich nur an strlen als C-Funktion störst, dann geht auch:</p>
<pre><code class="language-cpp">std::string(&quot;Hallo&quot;).length()
</code></pre>
<p>Das mach aber auch nichts anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015144</guid><dc:creator><![CDATA[hav a break]]></dc:creator><pubDate>Tue, 01 Feb 2011 12:56:32 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 13:00:12 GMT]]></title><description><![CDATA[<p>Für String-Literale spricht natürlich auch in C++ nichts dagegen, <code>const char*</code> zu nehmen. Aber die <code>const</code> -Qualifizierung sollte man nicht vergessen.</p>
<p>cooky451, vielleicht ein paar Verbesserungsvorschläge für deine Klasse:</p>
<ul>
<li><code>std::vector</code> besitzt keine Memberfunktion <code>data()</code> .</li>
<li>Mach deine Methoden <code>const</code> -korrekt. Sowohl die Memberfunktion selbst als auch ihre Parameter sind teilweise unnötig eingeschränkt durch Zeiger/Referenzen auf veränderbare Objekte.</li>
<li>Im Kopierkonstruktor den Zuweisungsoperator aufzurufen ist eher unüblich. Mach es lieber umgekehrt mit dem Copy-and-Swap-Idiom.</li>
<li>Der Umweg von <code>char*</code> über <code>std::string</code> ist unnötig ineffizient. Auch hier könntest du mit dem umgekehrten Weg besser fahren (unter Benutzung von <code>std::string::c_str()</code> ).</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/2015148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015148</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 01 Feb 2011 13:00:12 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 13:03:39 GMT]]></title><description><![CDATA[<p>Hm.<br />
Kann Boost.Assign vielleicht <code>vector&lt;char&gt; = (string-literal)</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015150</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 01 Feb 2011 13:03:39 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 13:42:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

const char txt[] = &quot;Hallo Welt!&quot;;

template&lt;std::size_t N&gt;
std::vector&lt;char&gt; str2vec(const char (&amp;str)[N])
{
    return std::vector&lt;char&gt;( str, str + N );
}

int main()
{
  std::vector&lt;char&gt; buf( str2vec( txt ) );
  std::cout &lt;&lt; &amp;buf[0] &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2015176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015176</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 01 Feb 2011 13:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 13:44:54 GMT]]></title><description><![CDATA[<p>hav a break schrieb:</p>
<blockquote>
<pre><code class="language-cpp">const char anf [] = &quot;Hallo Welt!&quot;;
    const char end [] = &quot;&quot;;

    std::vector&lt;char&gt; buf(anf, end);
</code></pre>
</blockquote>
<p>Das ist ziemlich undefiniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015180</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 01 Feb 2011 13:44:54 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Rohdatentyp&amp;quot; on Tue, 01 Feb 2011 14:38:50 GMT]]></title><description><![CDATA[<p>Aufpasser schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Aufpasser schrieb:</p>
<blockquote>
<p>ach du heilige scheiße... nimm doch in gottes namen einfach <strong>char</strong>* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Und dann baut er ein Speicherleck nach dem anderen, kommt mit der Übergabe an Funktionen nicht zurecht und und und...</p>
<p>Das alles um sich die obigen drei Zeilen Code zu sparen?</p>
</blockquote>
<p>Ist aber schon interessant, dass du jedem unterstellst, mit C++-Arrays nicht ordentlich umgehen zu können und ihm stattdessen nahelegst ein Template zu programmieren....</p>
</blockquote>
<p>Er unterstellt nur, dass jeder Fehler macht, und wer viele Fehler macht, macht die auch mal bei C++-Arrays - und das führt dann häufig zu Speicherlecks, weil das eben einer der Schwachpunkte von C++-Arrays gegenüber std::vectoren ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2015207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2015207</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 01 Feb 2011 14:38:50 GMT</pubDate></item></channel></rss>