Abd*_*mad 6 c++ arrays dynamic
我是一个非常基本的问题.我想在c ++中动态创建一个字符串数组.
我怎样才能做到这一点 ?
这是我的尝试:
#include <iostream>
#include <string>
int main(){
unsigned int wordsCollection = 6;
unsigned int length = 6;
std::string *collection = new std::string[wordsCollection];
for(unsigned int i = 0; i < wordsCollection; ++i){
std::cin>>wordsCollection[i];
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但它给出了以下错误
error C2109: subscript requires array or pointer type
Run Code Online (Sandbox Code Playgroud)
错误是什么?
而且如果std::cin我从用户那里获得输入号码,我可以静态创建那个大小的数组吗?
rer*_*run 10
使用std::vector<string> 或std::list<string>过度滚动它.
你打算输入:
std::cin>>collection[i];
Run Code Online (Sandbox Code Playgroud)
你还需要delete[] collection(或者你会泄漏这个记忆).
最好使用std::vector<std::string> collection;并完全避免使用原始指针:
#include <iterator>
#include <iostream>
#include <string>
#include <vector>
int main()
{
const unsigned int wordsCollection = 6;
std::vector<std::string> collection;
std::string word;
for (unsigned int i = 0; i < wordsCollection; ++i)
{
std::cin >> word;
collection.push_back(word);
}
std::copy(collection.begin(),
collection.end(),
std::ostream_iterator<std::string>(std::cout, "\n"));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35994 次 |
| 最近记录: |