सी ++ में, स्याही के वेक्टर (यानी vector<int>
) को स्ट्रिंग में बदलने का सबसे आसान तरीका क्या है?एक वेक्टर को स्ट्रिंग करने के लिए
उत्तर
शायद std::ostream_iterator
और std::ostringstream
:
#include <vector>
#include <string>
#include <algorithm>
#include <sstream>
#include <iterator>
#include <iostream>
int main()
{
std::vector<int> vec;
vec.push_back(1);
vec.push_back(4);
vec.push_back(7);
vec.push_back(4);
vec.push_back(9);
vec.push_back(7);
std::ostringstream oss;
if (!vec.empty())
{
// Convert all but the last element to avoid a trailing ","
std::copy(vec.begin(), vec.end()-1,
std::ostream_iterator<int>(oss, ","));
// Now add the last element with no delimiter
oss << vec.back();
}
std::cout << oss.str() << std::endl;
}
होगी यह ध्यान देने योग्य है कि 'vec.end() - 1 'केवल तभी परिभाषित किया गया है जब कोई जानता है कि _ vec' खाली नहीं है। – ildjarn
@ildjarn: अच्छा बिंदु। 'Vec.back()' के लिए वही। इस दृष्टिकोण के साथ –
, क्या किसी प्रकार की पैडिंग को मजबूर करना संभव है? उदाहरण के लिए, सभी संख्याओं को 4 पदों का उपयोग करने के लिए, उनके पास –
यहाँ एक विकल्प है जो एक कस्टम उत्पादन iterator का उपयोग करता है। यह उदाहरण रिक्त सूची के मामले के लिए सही तरीके से व्यवहार करता है। यह उदाहरण दर्शाता है कि कस्टम आउटपुट इटरेटर कैसे बनाएं, std::ostream_iterator
के समान।
#include <iterator>
#include <vector>
#include <iostream>
#include <sstream>
struct CommaIterator
:
public std::iterator<std::output_iterator_tag, void, void, void, void>
{
std::ostream *os;
std::string comma;
bool first;
CommaIterator(std::ostream& os, const std::string& comma)
:
os(&os), comma(comma), first(true)
{
}
CommaIterator& operator++() { return *this; }
CommaIterator& operator++(int) { return *this; }
CommaIterator& operator*() { return *this; }
template <class T>
CommaIterator& operator=(const T& t) {
if(first)
first = false;
else
*os << comma;
*os << t;
return *this;
}
};
int main() {
// The vector to convert
std::vector<int> v(3,3);
// Convert vector to string
std::ostringstream oss;
std::copy(v.begin(), v.end(), CommaIterator(oss, ","));
std::string result = oss.str();
const char *c_result = result.c_str();
// Display the result;
std::cout << c_result << "\n";
}
मैं आमतौर पर यह इस तरह से करते हैं ...
#include <string>
#include <vector>
int main(int argc, char* argv[])
{
std::vector<char> vec;
//... do something with vec
std::string str(vec.begin(), vec.end());
//... do something with str
return 0;
}
template<typename T>
string str(T begin, T end)
{
stringstream ss;
bool first = true;
for (; begin != end; begin++)
{
if (!first)
ss << ", ";
ss << *begin;
first = false;
}
return ss.str();
}
यह str समारोह पूर्णांकों एक स्ट्रिंग में और क्या पूर्णांक का प्रतिनिधित्व करता है के लिए एक चार में बारी कर सकते हैं। युगल के लिए भी काम करता है।
मैं स्ट्रिंग नामक फ़ंक्शन पर कॉल के साथ अपने स्ट्रिंग कन्स्ट्रक्टर कॉल को उलझन में डाल रहा था। Druciferre संख्याओं की एक अलग अल्पविराम सूची मुद्रित नहीं करेगा, यह संख्याओं को चार में बदलने की कोशिश करेगा। – kpgbrink
खेद है कि सवाल यह जानने के लिए पर्याप्त नहीं था कि वह वास्तव में क्या चाहता था। मैंने अन्य टिप्पणियां नहीं पढ़ीं। – kpgbrink
- 1. std :: वेक्टर स्ट्रिंग करने के लिए
- 2. एक वेक्टर को सामान्यीकृत करने के लिए कब?
- 3. मिलान स्ट्रिंग के आधार पर अनुसंधान में स्ट्रिंग्स का एक वेक्टर फिल्टर करने के लिए कैसे
- 4. शून्य करने के लिए एक वेक्टर प्रारंभ सी ++/C++ 11
- 5. क्या यह पॉइंटर को वेक्टर के वेक्टर में पुश_बैक करने के लिए मेमोरी रिसाव है?
- 6. यह जांचना कि क्या एक स्ट्रिंग वेक्टर
- 7. सी प्रीप्रोसेसर मैक्रो एक स्ट्रिंग को वापस करने के लिए
- 8. एक्स्टज कैसे एक जेसन स्ट्रिंग को डीकोड करने के लिए?
- 9. एक स्ट्रिंग में � को प्रतिस्थापित करने के लिए
- 10. जीएसन स्ट्रिंग को प्रिंट करने के लिए जीएसओएन स्ट्रिंग
- 11. एक वेक्टर को एक सरणी में परिवर्तित करना - क्या ऐसा करने के लिए 'मानक' तरीका है?
- 12. संख्याओं के स्ट्रिंग-डालने-आयताकार वेक्टर emacs?
- 13. एक वेक्टर के लिए संकेतक मैट्रिक्स
- 14. स्ट्रिंग वर्ण के आधार पर वेक्टर को कैसे सब्सक्राइब करें?
- 15. एक स्ट्रिंग को एक स्ट्रिंग में पोर्टेबल रूपांतरित करने के लिए कैसे?
- 16. वेक्टर को सूची में बदलने के लिए
- 17. लिनज फ़ाइल में स्ट्रिंग को किसी अन्य स्ट्रिंग के साथ स्ट्रिंग को प्रतिस्थापित करने के लिए
- 18. एक मैटलैब मैट्रिक्स को वेक्टर
- 19. स्ट्रू के वेक्टर को पास करने के लिए कैसे करें (char const * const * const)?
- 20. एक वेक्टर
- 21. विभिन्न टेम्पलेट प्रकारों को एक वेक्टर
- 22. एक वेक्टर
- 23. तारों के एक वेक्टर का मिश्रण
- 24. आर में आवेदन करते हुए तारों के वेक्टर के प्रत्येक तत्व पर एक स्ट्रिंग पेस्ट करने के लिए कैसे?
- 25. एक वेक्टर
- 26. एक स्ट्रिंग के साथ regex करने के लिए या एक स्ट्रिंग के साथ regex नहीं है?
- 27. एक वेक्टर
- 28. पंक्ति वेक्टर को कॉलम वेक्टर
- 29. एक वेक्टर
- 30. एक एसटीएल वेक्टर
क्या एक स्ट्रिंग? आप प्रत्येक पूर्णांक को स्ट्रिंग में कनवर्ट करने का इरादा कैसे रखते हैं? क्या वे ASCII वर्ण कोड का प्रतिनिधित्व करते हैं, या आप संख्याओं की अल्पविराम से अलग सूची बनाने की कोशिश कर रहे हैं? – meagar
आप आउटपुट को किस तरह दिखाना चाहते हैं? – Mark
वेक्टर कहें: [1, 4, 7, 4, 9, 7], स्ट्रिंग "1,4,7,4,9,7" – shn