Eri*_*inn 10
std::vector
s,std::list
s和数组(或std::array
s)都具有类似于Python列表的功能.您要选择哪种数据结构取决于您的要求.
也许在一个std :: vector中存储boost :: any? http://www.boost.org/doc/libs/1_54_0/doc/html/boost/any.html
这是一个简单的工作示例。参见下面的詹姆斯评论。
#include "../boost_1_54_0/boost/any.hpp"
#include <vector>
#include <string>
#include <iostream>
int main()
{
std::vector<boost::any> myList;
myList.push_back(std::string("Hello"));
myList.push_back(10);
myList.push_back(std::string("World"));
std::string any1 = boost::any_cast<std::string> (myList[0]);
int any2 = boost::any_cast<int> (myList[1]);
std::string any3 = boost::any_cast<std::string> (myList[2]);
std::cout<<any1<<" "<<any2<<" "<<any3<<std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
实际上没有一个 C++ 容器等同于 Python 的列表,这部分是 C++ 和 Python 的对象模型非常不同的结果。特别是,建议和赞成的 std::list 恕我直言甚至不接近 Python 的列表类型,我宁愿建议 std::vector 或 std::deque。也就是说,目前尚不清楚您想要的究竟是什么以及如何“构建它”在很大程度上取决于“它”究竟是什么,即您对容器的期望。
我建议您查看 C++ 容器 std::vector、std::deque 和 std::list 以获得概述。然后看看像 Boost.Any 和 Boost.Variant 之类的东西,你可以把它们结合起来,也许也是智能指针和 Boost.Optional 之一。最后,查看 Boost.Container 和 Boost.Intrusive。如果这些不太可能提供合适的近似值,您需要更好地解释您的实际目标是什么。